CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Megha Dey <[email protected]>
CC: Tomasz Kantecki <[email protected]>

tree:   https://github.com/meghadey/crypto crypto-avx512
head:   9c8c2ca77f6e2575a130bddb9767d068e1162d71
commit: 377aede9f10ee28be954473668bc6d33c6c9db75 [5/6] crypto: aesni - AVX512 
version of AESNI-GCM using VPCLMULQDQ
:::::: branch date: 9 days ago
:::::: commit date: 9 days ago
config: x86_64-randconfig-c007-20210930 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
962e503cc8bc411f7523cc393acae8aae425b1c4)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://github.com/meghadey/crypto/commit/377aede9f10ee28be954473668bc6d33c6c9db75
        git remote add meghadey-crypto https://github.com/meghadey/crypto
        git fetch --no-tags meghadey-crypto crypto-avx512
        git checkout 377aede9f10ee28be954473668bc6d33c6c9db75
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
                                             ^
   include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                         ^
   security/keys/keyring.c:1302:20: note: Field 'desc_len' is not equal to 0
           BUG_ON(index_key->desc_len == 0);
                             ^
   security/keys/keyring.c:1302:2: note: Taking false branch
           BUG_ON(index_key->desc_len == 0);
           ^
   include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                  ^
   security/keys/keyring.c:1302:2: note: Loop condition is false.  Exiting loop
           BUG_ON(index_key->desc_len == 0);
           ^
   include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                             ^
   security/keys/keyring.c:1303:2: note: Taking false branch
           BUG_ON(*_edit != NULL);
           ^
   include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                  ^
   security/keys/keyring.c:1303:2: note: Loop condition is false.  Exiting loop
           BUG_ON(*_edit != NULL);
           ^
   include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                             ^
   security/keys/keyring.c:1305:2: note: Null pointer value stored to 'to_edit'
           *_edit = NULL;
           ^~~~~~~~~~~~~
   security/keys/keyring.c:1308:6: note: Assuming the condition is false
           if (test_bit(KEY_FLAG_REVOKED, &keyring->flags))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   security/keys/keyring.c:1308:2: note: Taking false branch
           if (test_bit(KEY_FLAG_REVOKED, &keyring->flags))
           ^
   security/keys/keyring.c:1318:2: note: Taking true branch
           if (IS_ERR(edit)) {
           ^
   security/keys/keyring.c:1320:3: note: Control jumps to line 1340
                   goto error;
                   ^
   security/keys/keyring.c:1340:2: note: Taking false branch
           kleave(" = %d", ret);
           ^
   security/keys/internal.h:36:2: note: expanded from macro 'kleave'
           no_printk(KERN_DEBUG "<== %s()"FMT"\n", __func__, ##__VA_ARGS__)
           ^
   include/linux/printk.h:131:2: note: expanded from macro 'no_printk'
           if (0)                                          \
           ^
   security/keys/keyring.c:1613:8: note: Returning from '__key_link_begin'
           ret = __key_link_begin(to_keyring, &key->index_key, &to_edit);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   security/keys/keyring.c:1614:6: note: Assuming 'ret' is >= 0
           if (ret < 0)
               ^~~~~~~
   security/keys/keyring.c:1614:2: note: Taking false branch
           if (ret < 0)
           ^
   security/keys/keyring.c:1618:6: note: Access to field 'dead_leaf' results in 
a dereference of a null pointer (loaded from variable 'to_edit')
           if (to_edit->dead_leaf && (flags & KEYCTL_MOVE_EXCL))
               ^~~~~~~
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
>> arch/x86/crypto/aesni-intel_glue.c:683:27: warning: Value stored to 'data' 
>> during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct gcm_context_data *data = PTR_ALIGN((void *)databuf, 
AESNI_ALIGN);
                                    ^~~~
   arch/x86/crypto/aesni-intel_glue.c:683:27: note: Value stored to 'data' 
during its initialization is never read
           struct gcm_context_data *data = PTR_ALIGN((void *)databuf, 
AESNI_ALIGN);
                                    ^~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   arch/x86/kernel/kvm.c:336:7: warning: Value stored to 'pa' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
                   u64 pa = slow_virt_to_phys(this_cpu_ptr(&apf_reason));
                       ^~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kernel/kvm.c:336:7: note: Value stored to 'pa' during its 
initialization is never read
                   u64 pa = slow_virt_to_phys(this_cpu_ptr(&apf_reason));
                       ^~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   fs/xfs/xfs_ioctl32.c:456:3: warning: Value stored to 'cmd' is never read 
[clang-analyzer-deadcode.DeadStores]
                   cmd = _NATIVE_IOC(cmd, struct xfs_flock64);
                   ^
   fs/xfs/xfs_ioctl32.c:456:3: note: Value stored to 'cmd' is never read
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).

vim +/data +683 arch/x86/crypto/aesni-intel_glue.c

cce2ea8d90fec7 Sabrina Dubroca 2017-04-28  676  
e845520707f85c Dave Watson     2018-02-14  677  static int 
gcmaes_crypt_by_sg(bool enc, struct aead_request *req,
e845520707f85c Dave Watson     2018-02-14  678                                
unsigned int assoclen, u8 *hash_subkey,
83c83e658863e4 Ard Biesheuvel  2021-01-04  679                                
u8 *iv, void *aes_ctx, u8 *auth_tag,
83c83e658863e4 Ard Biesheuvel  2021-01-04  680                                
unsigned long auth_tag_len)
e845520707f85c Dave Watson     2018-02-14  681  {
a13ed1d15b07a0 Ard Biesheuvel  2021-01-04  682          u8 
databuf[sizeof(struct gcm_context_data) + (AESNI_ALIGN - 8)] __aligned(8);
a13ed1d15b07a0 Ard Biesheuvel  2021-01-04 @683          struct gcm_context_data 
*data = PTR_ALIGN((void *)databuf, AESNI_ALIGN);
e845520707f85c Dave Watson     2018-02-14  684          unsigned long left = 
req->cryptlen;
e845520707f85c Dave Watson     2018-02-14  685          struct scatter_walk 
assoc_sg_walk;
83c83e658863e4 Ard Biesheuvel  2021-01-04  686          struct skcipher_walk 
walk;
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  687          bool do_avx, do_avx2;
e845520707f85c Dave Watson     2018-02-14  688          u8 *assocmem = NULL;
83c83e658863e4 Ard Biesheuvel  2021-01-04  689          u8 *assoc;
83c83e658863e4 Ard Biesheuvel  2021-01-04  690          int err;
377aede9f10ee2 Megha Dey       2021-01-20  691          int hash_key_size;
377aede9f10ee2 Megha Dey       2021-01-20  692  
377aede9f10ee2 Megha Dey       2021-01-20  693          if 
(static_branch_likely(&gcm_use_avx512))
377aede9f10ee2 Megha Dey       2021-01-20  694                  hash_key_size = 
16 * GCM_AVX512_NUM_HASH_KEYS;
377aede9f10ee2 Megha Dey       2021-01-20  695          else
377aede9f10ee2 Megha Dey       2021-01-20  696                  hash_key_size = 
16 * GCM_BLOCK_LEN;
377aede9f10ee2 Megha Dey       2021-01-20  697  
377aede9f10ee2 Megha Dey       2021-01-20  698          /* Allocate 
gcm_context_data structure on the heap. With the
377aede9f10ee2 Megha Dey       2021-01-20  699           * VPCLMULQDQ version 
of GCM needing 48 hashkeys, allocating
377aede9f10ee2 Megha Dey       2021-01-20  700           * this structure on 
the stack will inflate its size significantly.
377aede9f10ee2 Megha Dey       2021-01-20  701           */
377aede9f10ee2 Megha Dey       2021-01-20  702          data = 
kzalloc(sizeof(*data) + hash_key_size, GFP_KERNEL);
377aede9f10ee2 Megha Dey       2021-01-20  703          if (!data) {
377aede9f10ee2 Megha Dey       2021-01-20  704                  kfree(data);
377aede9f10ee2 Megha Dey       2021-01-20  705                  return -ENOMEM;
377aede9f10ee2 Megha Dey       2021-01-20  706          }
e845520707f85c Dave Watson     2018-02-14  707  
e845520707f85c Dave Watson     2018-02-14  708          if (!enc)
e845520707f85c Dave Watson     2018-02-14  709                  left -= 
auth_tag_len;
e845520707f85c Dave Watson     2018-02-14  710  
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  711          do_avx = (left >= 
AVX_GEN2_OPTSIZE);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  712          do_avx2 = (left >= 
AVX_GEN4_OPTSIZE);
603f8c3b0dbbe2 Dave Watson     2018-12-10  713  
e845520707f85c Dave Watson     2018-02-14  714          /* Linearize assoc, if 
not already linear */
2694e23ffd210c Ard Biesheuvel  2021-01-04  715          if (req->src->length >= 
assoclen && req->src->length) {
e845520707f85c Dave Watson     2018-02-14  716                  
scatterwalk_start(&assoc_sg_walk, req->src);
e845520707f85c Dave Watson     2018-02-14  717                  assoc = 
scatterwalk_map(&assoc_sg_walk);
e845520707f85c Dave Watson     2018-02-14  718          } else {
2694e23ffd210c Ard Biesheuvel  2021-01-04  719                  gfp_t flags = 
(req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
2694e23ffd210c Ard Biesheuvel  2021-01-04  720                                
GFP_KERNEL : GFP_ATOMIC;
2694e23ffd210c Ard Biesheuvel  2021-01-04  721  
e845520707f85c Dave Watson     2018-02-14  722                  /* assoc can be 
any length, so must be on heap */
2694e23ffd210c Ard Biesheuvel  2021-01-04  723                  assocmem = 
kmalloc(assoclen, flags);
e845520707f85c Dave Watson     2018-02-14  724                  if 
(unlikely(!assocmem))
e845520707f85c Dave Watson     2018-02-14  725                          return 
-ENOMEM;
e845520707f85c Dave Watson     2018-02-14  726                  assoc = 
assocmem;
e845520707f85c Dave Watson     2018-02-14  727  
e845520707f85c Dave Watson     2018-02-14  728                  
scatterwalk_map_and_copy(assoc, req->src, 0, assoclen, 0);
e845520707f85c Dave Watson     2018-02-14  729          }
e845520707f85c Dave Watson     2018-02-14  730  
e845520707f85c Dave Watson     2018-02-14  731          kernel_fpu_begin();
377aede9f10ee2 Megha Dey       2021-01-20  732  
377aede9f10ee2 Megha Dey       2021-01-20  733          if 
(static_branch_likely(&gcm_use_avx512) &&
377aede9f10ee2 Megha Dey       2021-01-20  734                                  
IS_ENABLED(CONFIG_CRYPTO_AES_GCM_AVX512))
377aede9f10ee2 Megha Dey       2021-01-20  735                  
aesni_gcm_init_avx_512(aes_ctx, data, iv, hash_subkey, assoc,
377aede9f10ee2 Megha Dey       2021-01-20  736                                  
       assoclen);
377aede9f10ee2 Megha Dey       2021-01-20  737          else if 
(static_branch_likely(&gcm_use_avx2) && do_avx2)
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  738                  
aesni_gcm_init_avx_gen4(aes_ctx, data, iv, hash_subkey, assoc,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  739                                  
        assoclen);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  740          else if 
(static_branch_likely(&gcm_use_avx) && do_avx)
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  741                  
aesni_gcm_init_avx_gen2(aes_ctx, data, iv, hash_subkey, assoc,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  742                                  
        assoclen);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  743          else
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  744                  
aesni_gcm_init(aes_ctx, data, iv, hash_subkey, assoc, assoclen);
e845520707f85c Dave Watson     2018-02-14  745          kernel_fpu_end();
e845520707f85c Dave Watson     2018-02-14  746  
e845520707f85c Dave Watson     2018-02-14  747          if (!assocmem)
e845520707f85c Dave Watson     2018-02-14  748                  
scatterwalk_unmap(assoc);
e845520707f85c Dave Watson     2018-02-14  749          else
e845520707f85c Dave Watson     2018-02-14  750                  kfree(assocmem);
e845520707f85c Dave Watson     2018-02-14  751  
83c83e658863e4 Ard Biesheuvel  2021-01-04  752          err = enc ? 
skcipher_walk_aead_encrypt(&walk, req, false)
83c83e658863e4 Ard Biesheuvel  2021-01-04  753                    : 
skcipher_walk_aead_decrypt(&walk, req, false);
e845520707f85c Dave Watson     2018-02-14  754  
83c83e658863e4 Ard Biesheuvel  2021-01-04  755          while (walk.nbytes > 0) 
{
83c83e658863e4 Ard Biesheuvel  2021-01-04  756                  
kernel_fpu_begin();
377aede9f10ee2 Megha Dey       2021-01-20  757                  if 
(static_branch_likely(&gcm_use_avx512)
377aede9f10ee2 Megha Dey       2021-01-20  758                                  
&& IS_ENABLED(CONFIG_CRYPTO_AES_GCM_AVX512)) {
377aede9f10ee2 Megha Dey       2021-01-20  759                          if (enc)
377aede9f10ee2 Megha Dey       2021-01-20  760                                  
aesni_gcm_enc_update_avx_512(aes_ctx, data,
377aede9f10ee2 Megha Dey       2021-01-20  761                                  
                             walk.dst.virt.addr,
377aede9f10ee2 Megha Dey       2021-01-20  762                                  
                             walk.src.virt.addr,
377aede9f10ee2 Megha Dey       2021-01-20  763                                  
                             walk.nbytes);
377aede9f10ee2 Megha Dey       2021-01-20  764                          else
377aede9f10ee2 Megha Dey       2021-01-20  765                                  
aesni_gcm_dec_update_avx_512(aes_ctx, data,
377aede9f10ee2 Megha Dey       2021-01-20  766                                  
                             walk.dst.virt.addr,
377aede9f10ee2 Megha Dey       2021-01-20  767                                  
                             walk.src.virt.addr,
377aede9f10ee2 Megha Dey       2021-01-20  768                                  
                             walk.nbytes);
377aede9f10ee2 Megha Dey       2021-01-20  769                  } else if 
(static_branch_likely(&gcm_use_avx2) && do_avx2) {
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  770                          if (enc)
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  771                                  
aesni_gcm_enc_update_avx_gen4(aes_ctx, data,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  772                                  
                              walk.dst.virt.addr,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  773                                  
                              walk.src.virt.addr,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  774                                  
                              walk.nbytes);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  775                          else
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  776                                  
aesni_gcm_dec_update_avx_gen4(aes_ctx, data,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  777                                  
                              walk.dst.virt.addr,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  778                                  
                              walk.src.virt.addr,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  779                                  
                              walk.nbytes);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  780                  } else if 
(static_branch_likely(&gcm_use_avx) && do_avx) {
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  781                          if (enc)
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  782                                  
aesni_gcm_enc_update_avx_gen2(aes_ctx, data,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  783                                  
                              walk.dst.virt.addr,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  784                                  
                              walk.src.virt.addr,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  785                                  
                              walk.nbytes);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  786                          else
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  787                                  
aesni_gcm_dec_update_avx_gen2(aes_ctx, data,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  788                                  
                              walk.dst.virt.addr,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  789                                  
                              walk.src.virt.addr,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  790                                  
                              walk.nbytes);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  791                  } else if (enc) 
{
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  792                          
aesni_gcm_enc_update(aes_ctx, data, walk.dst.virt.addr,
83c83e658863e4 Ard Biesheuvel  2021-01-04  793                                  
             walk.src.virt.addr, walk.nbytes);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  794                  } else {
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  795                          
aesni_gcm_dec_update(aes_ctx, data, walk.dst.virt.addr,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  796                                  
             walk.src.virt.addr, walk.nbytes);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  797                  }
83c83e658863e4 Ard Biesheuvel  2021-01-04  798                  
kernel_fpu_end();
e845520707f85c Dave Watson     2018-02-14  799  
83c83e658863e4 Ard Biesheuvel  2021-01-04  800                  err = 
skcipher_walk_done(&walk, 0);
e845520707f85c Dave Watson     2018-02-14  801          }
e845520707f85c Dave Watson     2018-02-14  802  
83c83e658863e4 Ard Biesheuvel  2021-01-04  803          if (err)
83c83e658863e4 Ard Biesheuvel  2021-01-04  804                  return err;
83c83e658863e4 Ard Biesheuvel  2021-01-04  805  
83c83e658863e4 Ard Biesheuvel  2021-01-04  806          kernel_fpu_begin();
377aede9f10ee2 Megha Dey       2021-01-20  807          if 
(static_branch_likely(&gcm_use_avx512) &&
377aede9f10ee2 Megha Dey       2021-01-20  808                                  
IS_ENABLED(CONFIG_CRYPTO_AES_GCM_AVX512))
377aede9f10ee2 Megha Dey       2021-01-20  809                  
aesni_gcm_finalize_avx_512(aes_ctx, data, auth_tag,
377aede9f10ee2 Megha Dey       2021-01-20  810                                  
           auth_tag_len);
377aede9f10ee2 Megha Dey       2021-01-20  811          else if 
(static_branch_likely(&gcm_use_avx2) && do_avx2)
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  812                  
aesni_gcm_finalize_avx_gen4(aes_ctx, data, auth_tag,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  813                                  
            auth_tag_len);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  814          else if 
(static_branch_likely(&gcm_use_avx) && do_avx)
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  815                  
aesni_gcm_finalize_avx_gen2(aes_ctx, data, auth_tag,
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  816                                  
            auth_tag_len);
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  817          else
d6cbf4eaa46794 Ard Biesheuvel  2021-01-04  818                  
aesni_gcm_finalize(aes_ctx, data, auth_tag, auth_tag_len);
83c83e658863e4 Ard Biesheuvel  2021-01-04  819          kernel_fpu_end();
e845520707f85c Dave Watson     2018-02-14  820  
377aede9f10ee2 Megha Dey       2021-01-20  821          kfree(data);
e845520707f85c Dave Watson     2018-02-14  822          return 0;
e845520707f85c Dave Watson     2018-02-14  823  }
e845520707f85c Dave Watson     2018-02-14  824  

:::::: The code at line 683 was first introduced by commit
:::::: a13ed1d15b07a04b1f74b2df61ff7a5e47f45dd8 crypto: aesni - prevent 
misaligned buffers on the stack

:::::: TO: Ard Biesheuvel <[email protected]>
:::::: CC: Herbert Xu <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to