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]

Reply via email to