CC: [email protected] CC: [email protected] CC: [email protected] TO: Kees Cook <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: df0cc57e057f18e44dac8e6c18aba47ab53202f9 commit: a52f8a59aef46b59753e583bf4b28fccb069ce64 fortify: Explicitly disable Clang support date: 4 months ago :::::: branch date: 22 hours ago :::::: commit date: 4 months ago config: i386-randconfig-c001-20220108 (https://download.01.org/0day-ci/archive/20220111/[email protected]/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f3a344d2125fa37e59bae1b0874442c650a19607) 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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a52f8a59aef46b59753e583bf4b28fccb069ce64 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout a52f8a59aef46b59753e583bf4b28fccb069ce64 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 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:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ lib/kunit/executor.c:120:2: note: Taking false branch if (filter_glob_param) ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ lib/kunit/executor.c:125:2: note: Loop condition is false. Execution continues on line 128 for (suites = suite_set.start; suites < suite_set.end; suites++) ^ lib/kunit/executor.c:128:2: note: Assuming 'filter_glob_param' is non-null if (filter_glob_param) { /* a copy was made of each array */ ^ include/linux/compiler.h:56:45: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ lib/kunit/executor.c:128:2: note: '?' condition is false if (filter_glob_param) { /* a copy was made of each array */ ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ lib/kunit/executor.c:128:6: note: 'filter_glob_param' is non-null if (filter_glob_param) { /* a copy was made of each array */ ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ lib/kunit/executor.c:128:2: note: '?' condition is true if (filter_glob_param) { /* a copy was made of each array */ ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ lib/kunit/executor.c:128:2: note: Taking true branch if (filter_glob_param) { /* a copy was made of each array */ ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ lib/kunit/executor.c:129:3: note: Loop condition is false. Execution continues on line 131 for (suites = suite_set.start; suites < suite_set.end; suites++) ^ lib/kunit/executor.c:131:3: note: Argument to kfree() is the address of the global variable '__kunit_suites_start', which is not memory allocated by malloc() kfree(suite_set.start); ^ ~~~~~~~~~~~~~~~ Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. crypto/drbg.c:245:17: warning: Value stored to 'entropylen' during its initialization is never read [clang-analyzer-deadcode.DeadStores] unsigned short entropylen = drbg_sec_strength(drbg->core->flags); ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ crypto/drbg.c:245:17: note: Value stored to 'entropylen' during its initialization is never read unsigned short entropylen = drbg_sec_strength(drbg->core->flags); ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. >> crypto/tcrypt.c:696:2: warning: Potential leak of memory pointed to by 'req' >> [clang-analyzer-unix.Malloc] crypto_free_aead(tfm); ^ crypto/tcrypt.c:549:6: note: Assuming 'iv' is non-null if (!iv) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ crypto/tcrypt.c:549:2: note: '?' condition is false if (!iv) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ crypto/tcrypt.c:549:7: note: 'iv' is non-null if (!iv) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ crypto/tcrypt.c:549:2: note: '?' condition is false if (!iv) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ crypto/tcrypt.c:549:2: note: Taking false branch if (!iv) ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ crypto/tcrypt.c:552:6: note: Assuming the condition is false if (aad_size >= PAGE_SIZE) { ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ crypto/tcrypt.c:552:2: note: '?' condition is false if (aad_size >= PAGE_SIZE) { ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ crypto/tcrypt.c:552:2: note: '?' condition is false if (aad_size >= PAGE_SIZE) { ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ crypto/tcrypt.c:552:2: note: Taking false branch if (aad_size >= PAGE_SIZE) { ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ crypto/tcrypt.c:557:6: note: Assuming 'enc' is equal to 1 if (enc == ENCRYPT) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ crypto/tcrypt.c:557:2: note: '?' condition is false if (enc == ENCRYPT) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) -- ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ~~~~~~~~~~~~~~~~~^~~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ kernel/time/ntp.c:335:2: note: '?' condition is false if (unlikely(secs > 1 << (SHIFT_PLL + 1 + time_constant))) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ kernel/time/ntp.c:335:2: note: Taking false branch if (unlikely(secs > 1 << (SHIFT_PLL + 1 + time_constant))) ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ kernel/time/ntp.c:341:16: note: Assuming '__UNIQUE_ID___x223' is >= '__UNIQUE_ID___y224' freq_adj = min(freq_adj + time_freq, MAXFREQ_SCALED); ^ include/linux/minmax.h:45:19: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^~~~~~~~~~ kernel/time/ntp.c:341:16: note: '?' condition is false freq_adj = min(freq_adj + time_freq, MAXFREQ_SCALED); ^ include/linux/minmax.h:45:19: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^ include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^ kernel/time/ntp.c:343:16: note: '__UNIQUE_ID___x225' is > '__UNIQUE_ID___y226' time_freq = max(freq_adj, -MAXFREQ_SCALED); ^ include/linux/minmax.h:52:19: note: expanded from macro 'max' #define max(x, y) __careful_cmp(x, y, >) ^~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^~~ kernel/time/ntp.c:343:16: note: '?' condition is true time_freq = max(freq_adj, -MAXFREQ_SCALED); ^ include/linux/minmax.h:52:19: note: expanded from macro 'max' #define max(x, y) __careful_cmp(x, y, >) ^ include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^ kernel/time/ntp.c:345:33: note: The result of the left shift is undefined because the left operand is negative time_offset = div_s64(offset64 << NTP_SCALE_SHIFT, NTP_INTERVAL_FREQ); ~~~~~~~~ ^ Suppressed 1 warnings (1 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. 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. 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. >> fs/ecryptfs/crypto.c:346:2: warning: Potential leak of memory pointed to by >> 'req' [clang-analyzer-unix.Malloc] return rc; ^ fs/ecryptfs/crypto.c:514:9: note: Assuming the condition is false BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)); ^ include/asm-generic/bug.h:65:45: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ~~~~~~~~~~~~~^~~~~~~~~~~ include/linux/compiler.h:48:41: note: expanded from macro 'unlikely' # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x))) ^ include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__' ______r = __builtin_expect(!!(x), expect); \ ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ fs/ecryptfs/crypto.c:514:2: note: '?' condition is false BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)); ^ include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ fs/ecryptfs/crypto.c:514:2: note: '?' condition is false BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)); ^ include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ fs/ecryptfs/crypto.c:514:2: note: Taking false branch BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)); ^ include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ fs/ecryptfs/crypto.c:514:2: note: Loop condition is false. Exiting loop BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)); ^ include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^ fs/ecryptfs/crypto.c:521:6: note: Assuming 'rc' is >= 0 if (rc < 0) { ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ fs/ecryptfs/crypto.c:521:2: note: '?' condition is false if (rc < 0) { ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ fs/ecryptfs/crypto.c:521:6: note: 'rc' is >= 0 if (rc < 0) { ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ fs/ecryptfs/crypto.c:521:2: note: '?' condition is false if (rc < 0) { ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) -- ^ include/linux/compiler_types.h:305:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:295:2: note: expanded from macro '__compiletime_assert' do { \ ^ drivers/char/ipmi/ipmi_msghandler.c:711:2: note: Memory is released kfree(intf); ^~~~~~~~~~~ include/linux/kref.h:65:3: note: Returning; memory was released release(kref); ^~~~~~~~~~~~~ drivers/char/ipmi/ipmi_msghandler.c:4682:4: note: Returning; memory was released kref_put(&intf->refcount, intf_free); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/char/ipmi/ipmi_msghandler.c:4693:2: note: Calling 'spinlock_check' spin_lock_irqsave(&intf->seq_lock, flags); ^ include/linux/spinlock.h:393:24: note: expanded from macro 'spin_lock_irqsave' raw_spin_lock_irqsave(spinlock_check(lock), flags); \ ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/spinlock.h:256:34: note: expanded from macro 'raw_spin_lock_irqsave' flags = _raw_spin_lock_irqsave(lock); \ ^~~~ include/linux/spinlock.h:338:2: note: Use of memory after it is freed return &lock->rlock; ^ ~~~~~~~~~~~~ Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. lib/asn1_encoder.c:167:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = 0; ^ ~ lib/asn1_encoder.c:167:2: note: Value stored to 'ret' is never read ret = 0; ^ ~ Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. lib/oid_registry.c:149:3: warning: Value stored to 'num' is never read [clang-analyzer-deadcode.DeadStores] num = 0; ^ ~ lib/oid_registry.c:149:3: note: Value stored to 'num' is never read num = 0; ^ ~ Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. >> drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:135:10: warning: >> Potential leak of memory pointed to by 'out' [clang-analyzer-unix.Malloc] return false; ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:187:2: note: '?' condition is false DO_TEST(); ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:183:19: note: expanded from macro 'DO_TEST' #define DO_TEST() FAIL_ON(!sideband_msg_req_encode_decode(&in)) ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:17:20: note: expanded from macro 'FAIL_ON' #define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n") ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:11:3: note: expanded from macro 'FAIL' if (test) { \ ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:187:2: note: '?' condition is false DO_TEST(); ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:183:19: note: expanded from macro 'DO_TEST' #define DO_TEST() FAIL_ON(!sideband_msg_req_encode_decode(&in)) ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:17:20: note: expanded from macro 'FAIL_ON' #define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n") ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:11:3: note: expanded from macro 'FAIL' if (test) { \ ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:187:2: note: Taking false branch DO_TEST(); ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:183:19: note: expanded from macro 'DO_TEST' #define DO_TEST() FAIL_ON(!sideband_msg_req_encode_decode(&in)) ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:17:20: note: expanded from macro 'FAIL_ON' #define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n") ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:11:3: note: expanded from macro 'FAIL' if (test) { \ ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:187:2: note: Loop condition is false. Exiting loop DO_TEST(); ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:183:19: note: expanded from macro 'DO_TEST' #define DO_TEST() FAIL_ON(!sideband_msg_req_encode_decode(&in)) ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:17:20: note: expanded from macro 'FAIL_ON' #define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n") ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:10:2: note: expanded from macro 'FAIL' do { \ ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:191:2: note: '?' condition is false DO_TEST(); ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:183:19: note: expanded from macro 'DO_TEST' #define DO_TEST() FAIL_ON(!sideband_msg_req_encode_decode(&in)) ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:17:20: note: expanded from macro 'FAIL_ON' #define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n") ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:11:3: note: expanded from macro 'FAIL' if (test) { \ ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:191:2: note: '?' condition is false DO_TEST(); ^ drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:183:19: note: expanded from macro 'DO_TEST' #define DO_TEST() FAIL_ON(!sideband_msg_req_encode_decode(&in)) ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:17:20: note: expanded from macro 'FAIL_ON' #define FAIL_ON(x) FAIL((x), "%s", "FAIL_ON(" __stringify(x) ")\n") ^ drivers/gpu/drm/selftests/test-drm_modeset_common.h:11:3: note: expanded from macro 'FAIL' if (test) { \ ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) -- ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/dax/bus.c:523:15: note: Left side of '&&' is false dax_region = container_of(kref, struct dax_region, kref); ^ include/linux/kernel.h:495:61: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ drivers/dax/bus.c:523:15: note: Taking false branch dax_region = container_of(kref, struct dax_region, kref); ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:317:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:305:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:297:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/dax/bus.c:523:15: note: Loop condition is false. Exiting loop dax_region = container_of(kref, struct dax_region, kref); ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:317:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:305:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:295:2: note: expanded from macro '__compiletime_assert' do { \ ^ drivers/dax/bus.c:524:2: note: Memory is released kfree(dax_region); ^~~~~~~~~~~~~~~~~ include/linux/kref.h:65:3: note: Returning; memory was released release(kref); ^~~~~~~~~~~~~ drivers/dax/bus.c:529:2: note: Returning; memory was released kref_put(&dax_region->kref, dax_region_free); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/dax/bus.c:539:2: note: Returning; memory was released via 1st parameter dax_region_put(dax_region); ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/device.h:255:3: note: Returning; memory was released via 1st parameter action(data); ^~~~~~~~~~~~ drivers/dax/bus.c:585:6: note: Returning; memory was released via 3rd parameter if (devm_add_action_or_reset(parent, dax_region_unregister, dax_region)) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/dax/bus.c:585:2: note: '?' condition is false if (devm_add_action_or_reset(parent, dax_region_unregister, dax_region)) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/dax/bus.c:585:6: note: Use of memory after it is freed if (devm_add_action_or_reset(parent, dax_region_unregister, dax_region)) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ drivers/dax/bus.c:818:7: warning: Value stored to 'is_shrink' during its initialization is never read [clang-analyzer-deadcode.DeadStores] bool is_shrink = resource_size(res) > size; ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/dax/bus.c:818:7: note: Value stored to 'is_shrink' during its initialization is never read bool is_shrink = resource_size(res) > size; ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/dax/bus.c:875:33: warning: Dereference of null pointer >> [clang-analyzer-core.NullDereference] struct dax_mapping *mapping = dev_dax->ranges[i].mapping; ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/dax/bus.c:873:34: note: Assuming 'i' is >= 0 for (i = dev_dax->nr_range - 1; i >= 0; i--) { ^~~~~~ drivers/dax/bus.c:873:2: note: Loop condition is true. Entering loop body for (i = dev_dax->nr_range - 1; i >= 0; i--) { ^ drivers/dax/bus.c:879:12: note: Assuming '__UNIQUE_ID___x217' is >= '__UNIQUE_ID___y218' shrink = min_t(u64, to_shrink, range_len(range)); ^ include/linux/minmax.h:104:27: note: expanded from macro 'min_t' #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^~~~~~~~~~ drivers/dax/bus.c:879:12: note: '?' condition is false shrink = min_t(u64, to_shrink, range_len(range)); ^ include/linux/minmax.h:104:27: note: expanded from macro 'min_t' #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <) ^ include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^ drivers/dax/bus.c:880:3: note: '?' condition is false if (shrink >= range_len(range)) { ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/dax/bus.c:880:3: note: '?' condition is true if (shrink >= range_len(range)) { ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ drivers/dax/bus.c:880:3: note: Taking true branch if (shrink >= range_len(range)) { ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/dax/bus.c:883:4: note: Calling 'trim_dev_dax_range' trim_dev_dax_range(dev_dax); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/dax/bus.c:376:2: note: '?' condition is true dev_dbg(&dev_dax->dev, "delete range[%d]: %#llx:%#llx\n", i, ^ include/linux/dev_printk.h:162:2: note: expanded from macro 'dev_dbg' if (0) \ ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/dax/bus.c:376:2: note: Taking false branch dev_dbg(&dev_dax->dev, "delete range[%d]: %#llx:%#llx\n", i, ^ include/linux/dev_printk.h:162:2: note: expanded from macro 'dev_dbg' if (0) \ ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/dax/bus.c:381:6: note: Assuming the condition is false if (--dev_dax->nr_range == 0) { ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/dax/bus.c:381:2: note: '?' condition is false if (--dev_dax->nr_range == 0) { -- ^ drivers/hid/hid-core.c:1412:22: note: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned int' u8 bit_mask = ((1U << n) - 1); ^ ~ drivers/hid/hid-core.c:1984:3: warning: Value stored to 'len' is never read [clang-analyzer-deadcode.DeadStores] len += sprintf(buf + len, "%shidraw%d", len ? "," : "", ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/hid/hid-core.c:1984:3: note: Value stored to 'len' is never read len += sprintf(buf + len, "%shidraw%d", len ? "," : "", ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. drivers/leds/leds-pca9532.c:516:23: warning: Value stored to 'data' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct pca9532_data *data = i2c_get_clientdata(client); ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/leds/leds-pca9532.c:516:23: note: Value stored to 'data' during its initialization is never read struct pca9532_data *data = i2c_get_clientdata(client); ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ 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. 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. 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. 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. drivers/mmc/core/regulator.c:181:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device *dev = mmc_dev(mmc); ^~~ drivers/mmc/core/regulator.c:181:17: note: Value stored to 'dev' during its initialization is never read struct device *dev = mmc_dev(mmc); ^~~ 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. >> drivers/mmc/core/mmc_test.c:384:3: warning: Array subscript is undefined >> [clang-analyzer-core.uninitialized.ArraySubscript] mem->arr[mem->cnt].page = page; ^ ~~~~~~~~ drivers/mmc/core/mmc_test.c:347:6: note: Assuming 'max_page_cnt' is <= 'limit' if (max_page_cnt > limit) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/mmc/core/mmc_test.c:347:2: note: '?' condition is false if (max_page_cnt > limit) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/mmc/core/mmc_test.c:347:6: note: 'max_page_cnt' is <= 'limit' if (max_page_cnt > limit) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ drivers/mmc/core/mmc_test.c:347:2: note: '?' condition is false if (max_page_cnt > limit) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ drivers/mmc/core/mmc_test.c:347:2: note: Taking false branch if (max_page_cnt > limit) ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/mmc/core/mmc_test.c:349:6: note: Assuming 'min_page_cnt' is <= 'max_page_cnt' if (min_page_cnt > max_page_cnt) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/mmc/core/mmc_test.c:349:2: note: '?' condition is false if (min_page_cnt > max_page_cnt) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/mmc/core/mmc_test.c:349:6: note: 'min_page_cnt' is <= 'max_page_cnt' if (min_page_cnt > max_page_cnt) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ drivers/mmc/core/mmc_test.c:349:2: note: '?' condition is false if (min_page_cnt > max_page_cnt) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ drivers/mmc/core/mmc_test.c:349:2: note: Taking false branch if (min_page_cnt > max_page_cnt) ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/mmc/core/mmc_test.c:352:6: note: Assuming 'max_seg_page_cnt' is <= 'max_page_cnt' if (max_seg_page_cnt > max_page_cnt) vim +/req +696 crypto/tcrypt.c 53f52d7aecb4cb Tim Chen 2013-12-11 525 3e3dc25fe7d5e3 Mark Rustad 2014-07-25 526 static void test_aead_speed(const char *algo, int enc, unsigned int secs, 53f52d7aecb4cb Tim Chen 2013-12-11 527 struct aead_speed_template *template, 53f52d7aecb4cb Tim Chen 2013-12-11 528 unsigned int tcount, u8 authsize, 53f52d7aecb4cb Tim Chen 2013-12-11 529 unsigned int aad_size, u8 *keysize) 53f52d7aecb4cb Tim Chen 2013-12-11 530 { 53f52d7aecb4cb Tim Chen 2013-12-11 531 unsigned int i, j; 53f52d7aecb4cb Tim Chen 2013-12-11 532 struct crypto_aead *tfm; 53f52d7aecb4cb Tim Chen 2013-12-11 533 int ret = -ENOMEM; 53f52d7aecb4cb Tim Chen 2013-12-11 534 const char *key; 53f52d7aecb4cb Tim Chen 2013-12-11 535 struct aead_request *req; 53f52d7aecb4cb Tim Chen 2013-12-11 536 struct scatterlist *sg; 53f52d7aecb4cb Tim Chen 2013-12-11 537 struct scatterlist *sgout; 53f52d7aecb4cb Tim Chen 2013-12-11 538 const char *e; 53f52d7aecb4cb Tim Chen 2013-12-11 539 void *assoc; 96692a7305c498 Cristian Stoica 2015-01-28 540 char *iv; 53f52d7aecb4cb Tim Chen 2013-12-11 541 char *xbuf[XBUFSIZE]; 53f52d7aecb4cb Tim Chen 2013-12-11 542 char *xoutbuf[XBUFSIZE]; 53f52d7aecb4cb Tim Chen 2013-12-11 543 char *axbuf[XBUFSIZE]; ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 544 const int *b_size; 53f52d7aecb4cb Tim Chen 2013-12-11 545 unsigned int iv_len; 646710419a978c Gilad Ben-Yossef 2017-10-18 546 struct crypto_wait wait; 53f52d7aecb4cb Tim Chen 2013-12-11 547 96692a7305c498 Cristian Stoica 2015-01-28 548 iv = kzalloc(MAX_IVLEN, GFP_KERNEL); 96692a7305c498 Cristian Stoica 2015-01-28 549 if (!iv) 96692a7305c498 Cristian Stoica 2015-01-28 550 return; 96692a7305c498 Cristian Stoica 2015-01-28 551 ac5f863f8c548a Christian Engelmayer 2014-04-21 552 if (aad_size >= PAGE_SIZE) { ac5f863f8c548a Christian Engelmayer 2014-04-21 553 pr_err("associate data length (%u) too big\n", aad_size); 96692a7305c498 Cristian Stoica 2015-01-28 554 goto out_noxbuf; ac5f863f8c548a Christian Engelmayer 2014-04-21 555 } ac5f863f8c548a Christian Engelmayer 2014-04-21 556 53f52d7aecb4cb Tim Chen 2013-12-11 557 if (enc == ENCRYPT) 53f52d7aecb4cb Tim Chen 2013-12-11 558 e = "encryption"; 53f52d7aecb4cb Tim Chen 2013-12-11 559 else 53f52d7aecb4cb Tim Chen 2013-12-11 560 e = "decryption"; 53f52d7aecb4cb Tim Chen 2013-12-11 561 53f52d7aecb4cb Tim Chen 2013-12-11 562 if (testmgr_alloc_buf(xbuf)) 53f52d7aecb4cb Tim Chen 2013-12-11 563 goto out_noxbuf; 53f52d7aecb4cb Tim Chen 2013-12-11 564 if (testmgr_alloc_buf(axbuf)) 53f52d7aecb4cb Tim Chen 2013-12-11 565 goto out_noaxbuf; 53f52d7aecb4cb Tim Chen 2013-12-11 566 if (testmgr_alloc_buf(xoutbuf)) 53f52d7aecb4cb Tim Chen 2013-12-11 567 goto out_nooutbuf; 53f52d7aecb4cb Tim Chen 2013-12-11 568 a3f2185a29df08 Herbert Xu 2015-05-27 569 sg = kmalloc(sizeof(*sg) * 9 * 2, GFP_KERNEL); 53f52d7aecb4cb Tim Chen 2013-12-11 570 if (!sg) 53f52d7aecb4cb Tim Chen 2013-12-11 571 goto out_nosg; a3f2185a29df08 Herbert Xu 2015-05-27 572 sgout = &sg[9]; 53f52d7aecb4cb Tim Chen 2013-12-11 573 5e4b8c1fcc7001 Herbert Xu 2015-08-13 574 tfm = crypto_alloc_aead(algo, 0, 0); 53f52d7aecb4cb Tim Chen 2013-12-11 575 if (IS_ERR(tfm)) { 53f52d7aecb4cb Tim Chen 2013-12-11 576 pr_err("alg: aead: Failed to load transform for %s: %ld\n", algo, 53f52d7aecb4cb Tim Chen 2013-12-11 577 PTR_ERR(tfm)); a2ea6ed6a631e2 Christian Engelmayer 2014-04-21 578 goto out_notfm; 53f52d7aecb4cb Tim Chen 2013-12-11 579 } 53f52d7aecb4cb Tim Chen 2013-12-11 580 7b3d52683b3a47 Tianjia Zhang 2021-08-13 581 ret = crypto_aead_setauthsize(tfm, authsize); 7b3d52683b3a47 Tianjia Zhang 2021-08-13 582 if (ret) { 7b3d52683b3a47 Tianjia Zhang 2021-08-13 583 pr_err("alg: aead: Failed to setauthsize for %s: %d\n", algo, 7b3d52683b3a47 Tianjia Zhang 2021-08-13 584 ret); 7b3d52683b3a47 Tianjia Zhang 2021-08-13 585 goto out_noreq; 7b3d52683b3a47 Tianjia Zhang 2021-08-13 586 } 7b3d52683b3a47 Tianjia Zhang 2021-08-13 587 646710419a978c Gilad Ben-Yossef 2017-10-18 588 crypto_init_wait(&wait); 263a8df0d32eca Luca Clementi 2014-06-25 589 printk(KERN_INFO "\ntesting speed of %s (%s) %s\n", algo, 263a8df0d32eca Luca Clementi 2014-06-25 590 get_driver_name(crypto_aead, tfm), e); 263a8df0d32eca Luca Clementi 2014-06-25 591 53f52d7aecb4cb Tim Chen 2013-12-11 592 req = aead_request_alloc(tfm, GFP_KERNEL); 53f52d7aecb4cb Tim Chen 2013-12-11 593 if (!req) { 53f52d7aecb4cb Tim Chen 2013-12-11 594 pr_err("alg: aead: Failed to allocate request for %s\n", 53f52d7aecb4cb Tim Chen 2013-12-11 595 algo); 6af1f93e2a0192 Christian Engelmayer 2014-04-21 596 goto out_noreq; 53f52d7aecb4cb Tim Chen 2013-12-11 597 } 53f52d7aecb4cb Tim Chen 2013-12-11 598 1425d2d17f7309 Vutla, Lokesh 2015-07-07 599 aead_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG, 646710419a978c Gilad Ben-Yossef 2017-10-18 600 crypto_req_done, &wait); 1425d2d17f7309 Vutla, Lokesh 2015-07-07 601 53f52d7aecb4cb Tim Chen 2013-12-11 602 i = 0; 53f52d7aecb4cb Tim Chen 2013-12-11 603 do { 53f52d7aecb4cb Tim Chen 2013-12-11 604 b_size = aead_sizes; 53f52d7aecb4cb Tim Chen 2013-12-11 605 do { ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 606 u32 bs = round_up(*b_size, crypto_aead_blocksize(tfm)); ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 607 53f52d7aecb4cb Tim Chen 2013-12-11 608 assoc = axbuf[0]; 53f52d7aecb4cb Tim Chen 2013-12-11 609 memset(assoc, 0xff, aad_size); 53f52d7aecb4cb Tim Chen 2013-12-11 610 ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 611 if ((*keysize + bs) > TVMEMSIZE * PAGE_SIZE) { 53f52d7aecb4cb Tim Chen 2013-12-11 612 pr_err("template (%u) too big for tvmem (%lu)\n", ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 613 *keysize + bs, 53f52d7aecb4cb Tim Chen 2013-12-11 614 TVMEMSIZE * PAGE_SIZE); 53f52d7aecb4cb Tim Chen 2013-12-11 615 goto out; 53f52d7aecb4cb Tim Chen 2013-12-11 616 } 53f52d7aecb4cb Tim Chen 2013-12-11 617 53f52d7aecb4cb Tim Chen 2013-12-11 618 key = tvmem[0]; 53f52d7aecb4cb Tim Chen 2013-12-11 619 for (j = 0; j < tcount; j++) { 53f52d7aecb4cb Tim Chen 2013-12-11 620 if (template[j].klen == *keysize) { 53f52d7aecb4cb Tim Chen 2013-12-11 621 key = template[j].key; 53f52d7aecb4cb Tim Chen 2013-12-11 622 break; 53f52d7aecb4cb Tim Chen 2013-12-11 623 } 53f52d7aecb4cb Tim Chen 2013-12-11 624 } 7b3d52683b3a47 Tianjia Zhang 2021-08-13 625 53f52d7aecb4cb Tim Chen 2013-12-11 626 ret = crypto_aead_setkey(tfm, key, *keysize); 7b3d52683b3a47 Tianjia Zhang 2021-08-13 627 if (ret) { 7b3d52683b3a47 Tianjia Zhang 2021-08-13 628 pr_err("setkey() failed flags=%x: %d\n", 7b3d52683b3a47 Tianjia Zhang 2021-08-13 629 crypto_aead_get_flags(tfm), ret); 7b3d52683b3a47 Tianjia Zhang 2021-08-13 630 goto out; 7b3d52683b3a47 Tianjia Zhang 2021-08-13 631 } 53f52d7aecb4cb Tim Chen 2013-12-11 632 53f52d7aecb4cb Tim Chen 2013-12-11 633 iv_len = crypto_aead_ivsize(tfm); 53f52d7aecb4cb Tim Chen 2013-12-11 634 if (iv_len) 96692a7305c498 Cristian Stoica 2015-01-28 635 memset(iv, 0xff, iv_len); 53f52d7aecb4cb Tim Chen 2013-12-11 636 53f52d7aecb4cb Tim Chen 2013-12-11 637 crypto_aead_clear_flags(tfm, ~0); 53f52d7aecb4cb Tim Chen 2013-12-11 638 printk(KERN_INFO "test %u (%d bit key, %d byte blocks): ", ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 639 i, *keysize * 8, bs); 53f52d7aecb4cb Tim Chen 2013-12-11 640 53f52d7aecb4cb Tim Chen 2013-12-11 641 memset(tvmem[0], 0xff, PAGE_SIZE); 53f52d7aecb4cb Tim Chen 2013-12-11 642 ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 643 sg_init_aead(sg, xbuf, bs + (enc ? 0 : authsize), 5601e014fe7229 Tudor-Dan Ambarus 2017-11-14 644 assoc, aad_size); 53f52d7aecb4cb Tim Chen 2013-12-11 645 31267270a35594 Herbert Xu 2015-06-17 646 sg_init_aead(sgout, xoutbuf, ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 647 bs + (enc ? authsize : 0), assoc, 5601e014fe7229 Tudor-Dan Ambarus 2017-11-14 648 aad_size); 31267270a35594 Herbert Xu 2015-06-17 649 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 650 aead_request_set_ad(req, aad_size); 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 651 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 652 if (!enc) { 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 653 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 654 /* 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 655 * For decryption we need a proper auth so 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 656 * we do the encryption path once with buffers 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 657 * reversed (input <-> output) to calculate it 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 658 */ 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 659 aead_request_set_crypt(req, sgout, sg, ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 660 bs, iv); 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 661 ret = do_one_aead_op(req, 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 662 crypto_aead_encrypt(req)); 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 663 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 664 if (ret) { 129a4dba1b1ba9 Randy Dunlap 2020-07-30 665 pr_err("calculating auth failed (%d)\n", 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 666 ret); 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 667 break; 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 668 } 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 669 } 4431bd49530c73 Gilad Ben-Yossef 2017-12-17 670 7aacbfcb331cef Robert Baronescu 2017-10-10 671 aead_request_set_crypt(req, sg, sgout, ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 672 bs + (enc ? 0 : authsize), 7aacbfcb331cef Robert Baronescu 2017-10-10 673 iv); 53f52d7aecb4cb Tim Chen 2013-12-11 674 2af632996b8986 Horia Geantă 2018-07-23 675 if (secs) { ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 676 ret = test_aead_jiffies(req, enc, bs, 3e3dc25fe7d5e3 Mark Rustad 2014-07-25 677 secs); 2af632996b8986 Horia Geantă 2018-07-23 678 cond_resched(); 2af632996b8986 Horia Geantă 2018-07-23 679 } else { ad6d66bcac77e5 Ard Biesheuvel 2020-11-20 680 ret = test_aead_cycles(req, enc, bs); 2af632996b8986 Horia Geantă 2018-07-23 681 } 53f52d7aecb4cb Tim Chen 2013-12-11 682 53f52d7aecb4cb Tim Chen 2013-12-11 683 if (ret) { 53f52d7aecb4cb Tim Chen 2013-12-11 684 pr_err("%s() failed return code=%d\n", e, ret); 53f52d7aecb4cb Tim Chen 2013-12-11 685 break; 53f52d7aecb4cb Tim Chen 2013-12-11 686 } 53f52d7aecb4cb Tim Chen 2013-12-11 687 b_size++; 53f52d7aecb4cb Tim Chen 2013-12-11 688 i++; 53f52d7aecb4cb Tim Chen 2013-12-11 689 } while (*b_size); 53f52d7aecb4cb Tim Chen 2013-12-11 690 keysize++; 53f52d7aecb4cb Tim Chen 2013-12-11 691 } while (*keysize); 53f52d7aecb4cb Tim Chen 2013-12-11 692 53f52d7aecb4cb Tim Chen 2013-12-11 693 out: 6af1f93e2a0192 Christian Engelmayer 2014-04-21 694 aead_request_free(req); 6af1f93e2a0192 Christian Engelmayer 2014-04-21 695 out_noreq: 53f52d7aecb4cb Tim Chen 2013-12-11 @696 crypto_free_aead(tfm); a2ea6ed6a631e2 Christian Engelmayer 2014-04-21 697 out_notfm: 53f52d7aecb4cb Tim Chen 2013-12-11 698 kfree(sg); 53f52d7aecb4cb Tim Chen 2013-12-11 699 out_nosg: 53f52d7aecb4cb Tim Chen 2013-12-11 700 testmgr_free_buf(xoutbuf); 53f52d7aecb4cb Tim Chen 2013-12-11 701 out_nooutbuf: 53f52d7aecb4cb Tim Chen 2013-12-11 702 testmgr_free_buf(axbuf); 53f52d7aecb4cb Tim Chen 2013-12-11 703 out_noaxbuf: 53f52d7aecb4cb Tim Chen 2013-12-11 704 testmgr_free_buf(xbuf); 53f52d7aecb4cb Tim Chen 2013-12-11 705 out_noxbuf: 96692a7305c498 Cristian Stoica 2015-01-28 706 kfree(iv); 53f52d7aecb4cb Tim Chen 2013-12-11 707 } d5dc392742a981 Sebastian Siewior 2008-03-11 708 :::::: The code at line 696 was first introduced by commit :::::: 53f52d7aecb4cb3772872c902b73e0c685a56901 crypto: tcrypt - Added speed tests for AEAD crypto alogrithms in tcrypt test suite :::::: TO: Tim Chen <[email protected]> :::::: CC: Herbert Xu <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
