From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [meghadey-crypto:crypto-avx512 5/6] arch/x86/crypto/aesni-intel_glue.c:683:27: warning: Value stored to 'data' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
Date: Fri, 01 Oct 2021 22:39:40 +0800 [thread overview]
Message-ID: <202110012233.slVpKlUF-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 26832 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Megha Dey <megha.dey@intel.com>
CC: Tomasz Kantecki <tomasz.kantecki@intel.com>
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 <lkp@intel.com>
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 <ardb@kernel.org>
:::::: CC: Herbert Xu <herbert@gondor.apana.org.au>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38545 bytes --]
next reply other threads:[~2021-10-01 14:39 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-01 14:39 kernel test robot [this message]
2021-10-10 10:13 ` [meghadey-crypto:crypto-avx512 5/6] arch/x86/crypto/aesni-intel_glue.c:683:27: warning: Value stored to 'data' during its initialization is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
2021-10-10 10:13 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202110012233.slVpKlUF-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.