tree:   
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
head:   4fd7d7befdb531920cae8f78afd4938e4a25e421
commit: a60619211dd188a5dfa18761b82d096cda76fc9f [12/53] crypto: inside-secure 
- Add support for the Chacha20-Poly1305 AEAD
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-rc1-42-g38eda53-dirty
        git checkout a60619211dd188a5dfa18761b82d096cda76fc9f
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>


sparse warnings: (new ones prefixed by >>)

   drivers/crypto/inside-secure/safexcel_cipher.c:85:46: sparse: sparse: 
incorrect type in assignment (different base types) @@    expected unsigned int 
@@    got restricted __be32unsigned int @@
   drivers/crypto/inside-secure/safexcel_cipher.c:85:46: sparse:    expected 
unsigned int
   drivers/crypto/inside-secure/safexcel_cipher.c:85:46: sparse:    got 
restricted __be32 [usertype]
   drivers/crypto/inside-secure/safexcel_cipher.c:117:46: sparse: sparse: 
incorrect type in assignment (different base types) @@    expected unsigned int 
@@    got restricted __be32unsigned int @@
   drivers/crypto/inside-secure/safexcel_cipher.c:117:46: sparse:    expected 
unsigned int
   drivers/crypto/inside-secure/safexcel_cipher.c:117:46: sparse:    got 
restricted __be32 [usertype]
   drivers/crypto/inside-secure/safexcel_cipher.c:272:35: sparse: sparse: cast 
from restricted __be16
   drivers/crypto/inside-secure/safexcel_cipher.c:272:33: sparse: sparse: 
incorrect type in assignment (different base types) @@    expected unsigned int 
[usertype] @@    got restrunsigned int [usertype] @@
   drivers/crypto/inside-secure/safexcel_cipher.c:272:33: sparse:    expected 
unsigned int [usertype]
   drivers/crypto/inside-secure/safexcel_cipher.c:272:33: sparse:    got 
restricted __le32 [usertype]
   drivers/crypto/inside-secure/safexcel_cipher.c:2158:45: sparse: sparse: 
restricted __be32 degrades to integer
   drivers/crypto/inside-secure/safexcel_cipher.c:2166:30: sparse: sparse: 
incorrect type in assignment (different base types) @@    expected unsigned int 
@@    got restricted __be32unsigned int @@
   drivers/crypto/inside-secure/safexcel_cipher.c:2166:30: sparse:    expected 
unsigned int
   drivers/crypto/inside-secure/safexcel_cipher.c:2166:30: sparse:    got 
restricted __be32 [usertype]
   drivers/crypto/inside-secure/safexcel_cipher.c:2257:65: sparse: sparse: 
incorrect type in assignment (different base types) @@    expected unsigned int 
@@    got restricted __be32unsigned int @@
   drivers/crypto/inside-secure/safexcel_cipher.c:2257:65: sparse:    expected 
unsigned int
   drivers/crypto/inside-secure/safexcel_cipher.c:2257:65: sparse:    got 
restricted __be32 [usertype]
   drivers/crypto/inside-secure/safexcel_cipher.c:2361:37: sparse: sparse: 
restricted __le32 degrades to integer
   drivers/crypto/inside-secure/safexcel_cipher.c:2370:29: sparse: sparse: 
incorrect type in assignment (different base types) @@    expected restricted 
__le32 @@    got icted __le32 @@
   drivers/crypto/inside-secure/safexcel_cipher.c:2370:29: sparse:    expected 
restricted __le32
   drivers/crypto/inside-secure/safexcel_cipher.c:2370:29: sparse:    got 
unsigned int
>> drivers/crypto/inside-secure/safexcel_cipher.c:2476:26: sparse: sparse: cast 
>> from restricted __le32
>> drivers/crypto/inside-secure/safexcel_cipher.c:2476:24: sparse: sparse: 
>> incorrect type in assignment (different base types) @@    expected unsigned 
>> int @@    got restricted __le32unsigned int @@
   drivers/crypto/inside-secure/safexcel_cipher.c:2476:24: sparse:    expected 
unsigned int
   drivers/crypto/inside-secure/safexcel_cipher.c:2476:24: sparse:    got 
restricted __le32 [usertype]

vim +2476 drivers/crypto/inside-secure/safexcel_cipher.c

  2451  
  2452  static int safexcel_aead_chachapoly_crypt(struct aead_request *req,
  2453                                            enum 
safexcel_cipher_direction dir)
  2454  {
  2455          struct safexcel_cipher_req *creq = aead_request_ctx(req);
  2456          struct crypto_aead *aead = crypto_aead_reqtfm(req);
  2457          struct crypto_tfm *tfm = crypto_aead_tfm(aead);
  2458          struct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);
  2459          struct aead_request *subreq = aead_request_ctx(req);
  2460          u32 key[CHACHA_KEY_SIZE / sizeof(u32) + 1];
  2461          int i, ret = 0;
  2462  
  2463          /*
  2464           * Instead of wasting time detecting umpteen silly corner cases,
  2465           * just dump all "small" requests to the fallback 
implementation.
  2466           * HW would not be faster on such small requests anyway.
  2467           */
  2468          if (likely((ctx->aead != EIP197_AEAD_TYPE_IPSEC_ESP ||
  2469                      req->assoclen >= EIP197_AEAD_IPSEC_IV_SIZE) &&
  2470                     req->cryptlen > POLY1305_DIGEST_SIZE)) {
  2471                  return safexcel_queue_req(&req->base, creq, dir);
  2472          }
  2473  
  2474          /* HW cannot do full (AAD+payload) zero length, use fallback */
  2475          for (i = 0; i < CHACHA_KEY_SIZE / sizeof(u32); i++)
> 2476                  key[i] = cpu_to_le32(ctx->key[i]);
  2477          if (ctx->aead == EIP197_AEAD_TYPE_IPSEC_ESP) {
  2478                  /* ESP variant has nonce appended to the key */
  2479                  key[CHACHA_KEY_SIZE / sizeof(u32)] = ctx->nonce;
  2480                  ret = crypto_aead_setkey(ctx->fback, (u8 *)key,
  2481                                           CHACHA_KEY_SIZE +
  2482                                           EIP197_AEAD_IPSEC_NONCE_SIZE);
  2483          } else {
  2484                  ret = crypto_aead_setkey(ctx->fback, (u8 *)key,
  2485                                           CHACHA_KEY_SIZE);
  2486          }
  2487          if (ret) {
  2488                  crypto_aead_clear_flags(aead, CRYPTO_TFM_REQ_MASK);
  2489                  crypto_aead_set_flags(aead, 
crypto_aead_get_flags(ctx->fback) &
  2490                                              CRYPTO_TFM_REQ_MASK);
  2491                  return ret;
  2492          }
  2493  
  2494          aead_request_set_tfm(subreq, ctx->fback);
  2495          aead_request_set_callback(subreq, req->base.flags, 
req->base.complete,
  2496                                    req->base.data);
  2497          aead_request_set_crypt(subreq, req->src, req->dst, 
req->cryptlen,
  2498                                 req->iv);
  2499          aead_request_set_ad(subreq, req->assoclen);
  2500  
  2501          return (dir ==  SAFEXCEL_ENCRYPT) ?
  2502                  crypto_aead_encrypt(subreq) :
  2503                  crypto_aead_decrypt(subreq);
  2504  }
  2505  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Reply via email to