CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Kees Cook <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git 
kspp/memcpy/next-20210726/v1
head:   831e05d47f76f6e7452fedbcb471dd405242bfaf
commit: c2c5b6a9e071a474a22c96d45a0e2a86cc9947db [28/64] compiler_types.h: 
Remove __compiletime_object_size()
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: x86_64-randconfig-c001-20210728 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
c49df15c278857adecd12db6bb1cdc96885f7079)
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
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?id=c2c5b6a9e071a474a22c96d45a0e2a86cc9947db
        git remote add kees 
https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git
        git fetch --no-tags kees kspp/memcpy/next-20210726/v1
        git checkout c2c5b6a9e071a474a22c96d45a0e2a86cc9947db
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 
clang-analyzer 

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


clang-analyzer warnings: (new ones prefixed by >>)
   include/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/regset.h:260:2: note: Loop condition is false.  Exiting loop
           BUG_ON(*pos < start_pos);
           ^
   include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                             ^
   include/linux/regset.h:261:6: note: 'end_pos' is < 0
           if (end_pos < 0 || *pos < end_pos) {
               ^~~~~~~
   include/linux/regset.h:261:18: note: Left side of '||' is true
           if (end_pos < 0 || *pos < end_pos) {
                           ^
   include/linux/regset.h:262:24: note: 'end_pos' is < 0
                   unsigned int copy = (end_pos < 0 ? *count
                                        ^~~~~~~
   include/linux/regset.h:262:24: note: '?' condition is true
   include/linux/regset.h:265:7: note: Assuming the condition is false
                   if (*kbuf) {
                       ^~~~~
   include/linux/regset.h:265:3: note: Taking false branch
                   if (*kbuf) {
                   ^
   include/linux/regset.h:268:14: note: Calling '__copy_from_user'
                   } else if (__copy_from_user(data, *ubuf, copy))
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:110:6: note: Assuming the condition is false
           if (should_fail_usercopy())
               ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:110:2: note: Taking false branch
           if (should_fail_usercopy())
           ^
   include/linux/uaccess.h:114:9: note: Calling 'raw_copy_from_user'
           return raw_copy_from_user(to, from, n);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/uaccess_64.h:52:9: note: Calling 'copy_user_generic'
           return copy_user_generic(dst, (__force void *)src, size);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/uaccess_64.h:46:2: note: Returning without writing to 
'to->mxcsr'
           return ret;
           ^
   arch/x86/include/asm/uaccess_64.h:52:9: note: Returning from 
'copy_user_generic'
           return copy_user_generic(dst, (__force void *)src, size);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/uaccess_64.h:52:2: note: Returning without writing to 
'dst->mxcsr'
           return copy_user_generic(dst, (__force void *)src, size);
           ^
   include/linux/uaccess.h:114:9: note: Returning from 'raw_copy_from_user'
           return raw_copy_from_user(to, from, n);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:114:2: note: Returning without writing to 'to->mxcsr'
           return raw_copy_from_user(to, from, n);
           ^
   include/linux/regset.h:268:14: note: Returning from '__copy_from_user'
                   } else if (__copy_from_user(data, *ubuf, copy))
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/regset.h:268:14: note: Assuming the condition is false
                   } else if (__copy_from_user(data, *ubuf, copy))
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/regset.h:268:10: note: Taking false branch
                   } else if (__copy_from_user(data, *ubuf, copy))
                          ^
   include/linux/regset.h:275:2: note: Returning zero, which participates in a 
condition later
           return 0;
           ^~~~~~~~
   arch/x86/kernel/fpu/regset.c:102:8: note: Returning from 'user_regset_copyin'
           ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &newstate, 0, 
-1);
                 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kernel/fpu/regset.c:103:6: note: 'ret' is 0
           if (ret)
               ^~~
   arch/x86/kernel/fpu/regset.c:103:2: note: Taking false branch
           if (ret)
           ^
   arch/x86/kernel/fpu/regset.c:107:21: note: The left operand of '&' is a 
garbage value
           if (newstate.mxcsr & ~mxcsr_feature_mask)
               ~~~~~~~~~~~~~~ ^
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   9 warnings generated.
   arch/x86/kernel/cpu/mce/dev-mcelog.c:98:2: warning: Call to function 
'strcpy' is insecure as it does not provide bounding of the memory buffer. 
Replace unbounded copy functions with analogous functions that support length 
arguments such as 'strlcpy'. CWE-119 
[clang-analyzer-security.insecureAPI.strcpy]
           strcpy(buf, mce_helper);
           ^~~~~~
   arch/x86/kernel/cpu/mce/dev-mcelog.c:98:2: note: Call to function 'strcpy' 
is insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119
           strcpy(buf, mce_helper);
           ^~~~~~
   arch/x86/kernel/cpu/mce/dev-mcelog.c:99:2: warning: Call to function 
'strcat' is insecure as it does not provide bounding of the memory buffer. 
Replace unbounded copy functions with analogous functions that support length 
arguments such as 'strlcat'. CWE-119 
[clang-analyzer-security.insecureAPI.strcpy]
           strcat(buf, "\n");
           ^~~~~~
   arch/x86/kernel/cpu/mce/dev-mcelog.c:99:2: note: Call to function 'strcat' 
is insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119
           strcat(buf, "\n");
           ^~~~~~
>> arch/x86/kernel/cpu/mce/dev-mcelog.c:313:15: warning: The left operand of 
>> '>=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
           if (m.extcpu >= num_possible_cpus() || !cpu_online(m.extcpu))
               ~~~~~~~~ ^
   arch/x86/kernel/cpu/mce/dev-mcelog.c:299:6: note: Assuming the condition is 
false
           if (!capable(CAP_SYS_ADMIN))
               ^~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kernel/cpu/mce/dev-mcelog.c:299:2: note: Taking false branch
           if (!capable(CAP_SYS_ADMIN))
           ^
   arch/x86/kernel/cpu/mce/dev-mcelog.c:305:7: note: Left side of '&&' is true
           if (!boot_cpu_has(X86_FEATURE_MCE) || !boot_cpu_has(X86_FEATURE_MCA))
                ^
   arch/x86/include/asm/cpufeature.h:141:27: note: expanded from macro 
'boot_cpu_has'
   #define boot_cpu_has(bit)       cpu_has(&boot_cpu_data, bit)
                                   ^
   arch/x86/include/asm/cpufeature.h:122:3: note: expanded from macro 'cpu_has'
           (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :  \
            ^
   arch/x86/kernel/cpu/mce/dev-mcelog.c:305:7: note: Left side of '&&' is true
           if (!boot_cpu_has(X86_FEATURE_MCE) || !boot_cpu_has(X86_FEATURE_MCA))
                ^
   arch/x86/include/asm/cpufeature.h:141:27: note: expanded from macro 
'boot_cpu_has'
   #define boot_cpu_has(bit)       cpu_has(&boot_cpu_data, bit)
                                   ^
   arch/x86/include/asm/cpufeature.h:122:32: note: expanded from macro 'cpu_has'
           (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :  \
                                         ^
   arch/x86/include/asm/cpufeature.h:74:5: note: expanded from macro 
'REQUIRED_MASK_BIT_SET'
            ( CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK,  0, feature_bit) ||    \
              ^
   arch/x86/include/asm/cpufeature.h:64:3: note: expanded from macro 
'CHECK_BIT_IN_MASK_WORD'
           (((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
            ^
   arch/x86/kernel/cpu/mce/dev-mcelog.c:305:7: note: Left side of '||' is false
           if (!boot_cpu_has(X86_FEATURE_MCE) || !boot_cpu_has(X86_FEATURE_MCA))
                ^
   arch/x86/include/asm/cpufeature.h:141:27: note: expanded from macro 
'boot_cpu_has'
   #define boot_cpu_has(bit)       cpu_has(&boot_cpu_data, bit)
                                   ^
   arch/x86/include/asm/cpufeature.h:122:32: note: expanded from macro 'cpu_has'
           (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :  \
                                         ^
   arch/x86/include/asm/cpufeature.h:74:5: note: expanded from macro 
'REQUIRED_MASK_BIT_SET'
            ( CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK,  0, feature_bit) ||    \
              ^
   arch/x86/include/asm/cpufeature.h:64:2: note: expanded from macro 
'CHECK_BIT_IN_MASK_WORD'
           (((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
           ^
   arch/x86/kernel/cpu/mce/dev-mcelog.c:305:7: note: Left side of '&&' is false
           if (!boot_cpu_has(X86_FEATURE_MCE) || !boot_cpu_has(X86_FEATURE_MCA))
                ^
   arch/x86/include/asm/cpufeature.h:141:27: note: expanded from macro 
'boot_cpu_has'
   #define boot_cpu_has(bit)       cpu_has(&boot_cpu_data, bit)
                                   ^
   arch/x86/include/asm/cpufeature.h:122:32: note: expanded from macro 'cpu_has'
           (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :  \
                                         ^
   arch/x86/include/asm/cpufeature.h:75:5: note: expanded from macro 
'REQUIRED_MASK_BIT_SET'
              CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK,  1, feature_bit) ||    \
              ^
   arch/x86/include/asm/cpufeature.h:64:22: note: expanded from macro 
'CHECK_BIT_IN_MASK_WORD'
           (((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
                               ^
   arch/x86/kernel/cpu/mce/dev-mcelog.c:305:7: note: Left side of '&&' is false
           if (!boot_cpu_has(X86_FEATURE_MCE) || !boot_cpu_has(X86_FEATURE_MCA))
                ^
   arch/x86/include/asm/cpufeature.h:141:27: note: expanded from macro 
'boot_cpu_has'
   #define boot_cpu_has(bit)       cpu_has(&boot_cpu_data, bit)
                                   ^
   arch/x86/include/asm/cpufeature.h:122:32: note: expanded from macro 'cpu_has'
           (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :  \
                                         ^
   arch/x86/include/asm/cpufeature.h:76:5: note: expanded from macro 
'REQUIRED_MASK_BIT_SET'
              CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK,  2, feature_bit) ||    \
              ^
   arch/x86/include/asm/cpufeature.h:64:22: note: expanded from macro 
'CHECK_BIT_IN_MASK_WORD'
           (((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
                               ^
   arch/x86/kernel/cpu/mce/dev-mcelog.c:305:7: note: Left side of '&&' is false
           if (!boot_cpu_has(X86_FEATURE_MCE) || !boot_cpu_has(X86_FEATURE_MCA))
                ^
   arch/x86/include/asm/cpufeature.h:141:27: note: expanded from macro 
'boot_cpu_has'
   #define boot_cpu_has(bit)       cpu_has(&boot_cpu_data, bit)
                                   ^
   arch/x86/include/asm/cpufeature.h:122:32: note: expanded from macro 'cpu_has'
           (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :  \
                                         ^
   arch/x86/include/asm/cpufeature.h:77:5: note: expanded from macro 
'REQUIRED_MASK_BIT_SET'
              CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK,  3, feature_bit) ||    \
              ^
   arch/x86/include/asm/cpufeature.h:64:22: note: expanded from macro 
'CHECK_BIT_IN_MASK_WORD'
           (((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
                               ^
   arch/x86/kernel/cpu/mce/dev-mcelog.c:305:7: note: Left side of '&&' is false
           if (!boot_cpu_has(X86_FEATURE_MCE) || !boot_cpu_has(X86_FEATURE_MCA))
                ^
   arch/x86/include/asm/cpufeature.h:141:27: note: expanded from macro 
'boot_cpu_has'
   #define boot_cpu_has(bit)       cpu_has(&boot_cpu_data, bit)
                                   ^
   arch/x86/include/asm/cpufeature.h:122:32: note: expanded from macro 'cpu_has'
           (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :  \
--
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/bus.c:872:2: note: Calling 'remove_probe_files'
           remove_probe_files(bus);
           ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/bus.c:572:2: note: Calling 'bus_remove_file'
           bus_remove_file(bus, &bus_attr_drivers_autoprobe);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/bus.c:145:6: note: Calling 'bus_get'
           if (bus_get(bus)) {
               ^~~~~~~~~~~~
   drivers/base/bus.c:44:6: note: 'bus' is non-null
           if (bus) {
               ^~~
   drivers/base/bus.c:44:2: note: Taking true branch
           if (bus) {
           ^
   drivers/base/bus.c:46:3: note: Returning without writing to 'bus->p'
                   return bus;
                   ^
   drivers/base/bus.c:145:6: note: Returning from 'bus_get'
           if (bus_get(bus)) {
               ^~~~~~~~~~~~
   drivers/base/bus.c:145:2: note: Taking true branch
           if (bus_get(bus)) {
           ^
   drivers/base/bus.c:147:3: note: Calling 'bus_put'
                   bus_put(bus);
                   ^~~~~~~~~~~~
   drivers/base/bus.c:53:6: note: 'bus' is non-null
           if (bus)
               ^~~
   drivers/base/bus.c:53:2: note: Taking true branch
           if (bus)
           ^
   drivers/base/bus.c:55:1: note: Returning without writing to 'bus->p'
   }
   ^
   drivers/base/bus.c:147:3: note: Returning from 'bus_put'
                   bus_put(bus);
                   ^~~~~~~~~~~~
   drivers/base/bus.c:149:1: note: Returning without writing to 'bus->p'
   }
   ^
   drivers/base/bus.c:572:2: note: Returning from 'bus_remove_file'
           bus_remove_file(bus, &bus_attr_drivers_autoprobe);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/bus.c:573:2: note: Calling 'bus_remove_file'
           bus_remove_file(bus, &bus_attr_drivers_probe);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/bus.c:145:6: note: Calling 'bus_get'
           if (bus_get(bus)) {
               ^~~~~~~~~~~~
   drivers/base/bus.c:44:6: note: 'bus' is non-null
           if (bus) {
               ^~~
   drivers/base/bus.c:44:2: note: Taking true branch
           if (bus) {
           ^
   drivers/base/bus.c:46:3: note: Returning without writing to 'bus->p'
                   return bus;
                   ^
   drivers/base/bus.c:145:6: note: Returning from 'bus_get'
           if (bus_get(bus)) {
               ^~~~~~~~~~~~
   drivers/base/bus.c:145:2: note: Taking true branch
           if (bus_get(bus)) {
           ^
   drivers/base/bus.c:147:3: note: Calling 'bus_put'
                   bus_put(bus);
                   ^~~~~~~~~~~~
   drivers/base/bus.c:53:6: note: 'bus' is non-null
           if (bus)
               ^~~
   drivers/base/bus.c:53:2: note: Taking true branch
           if (bus)
           ^
   drivers/base/bus.c:55:1: note: Returning without writing to 'bus->p'
   }
   ^
   drivers/base/bus.c:147:3: note: Returning from 'bus_put'
                   bus_put(bus);
                   ^~~~~~~~~~~~
   drivers/base/bus.c:149:1: note: Returning without writing to 'bus->p'
   }
   ^
   drivers/base/bus.c:573:2: note: Returning from 'bus_remove_file'
           bus_remove_file(bus, &bus_attr_drivers_probe);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/bus.c:574:1: note: Returning without writing to 'bus->p'
   }
   ^
   drivers/base/bus.c:872:2: note: Returning from 'remove_probe_files'
           remove_probe_files(bus);
           ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/bus.c:873:18: note: Access to field 'drivers_kset' results in a 
dereference of a null pointer (loaded from field 'p')
           kset_unregister(bus->p->drivers_kset);
                           ^    ~
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   8 warnings generated.
>> drivers/char/ipmi/ipmb_dev_int.c:150:12: warning: The right operand of '<' 
>> is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
           if (count < msg[0])
                     ^ ~~~~~~
   drivers/char/ipmi/ipmb_dev_int.c:144:6: note: Assuming the condition is false
           if (count > sizeof(msg))
               ^~~~~~~~~~~~~~~~~~~
   drivers/char/ipmi/ipmb_dev_int.c:144:2: note: Taking false branch
           if (count > sizeof(msg))
           ^
   drivers/char/ipmi/ipmb_dev_int.c:147:6: note: Calling 'copy_from_user'
           if (copy_from_user(&msg, buf, count))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:13: note: Calling 'check_copy_size'
           if (likely(check_copy_size(to, n, false)))
                      ^
   include/linux/compiler.h:77:40: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                                               ^
   include/linux/thread_info.h:207:15: note: Assuming 'sz' is >= 0
           if (unlikely(sz >= 0 && sz < bytes)) {
                        ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/thread_info.h:207:15: note: Left side of '&&' is true
           if (unlikely(sz >= 0 && sz < bytes)) {
                        ^
   include/linux/thread_info.h:207:26: note: Assuming 'sz' is < 'bytes', which 
participates in a condition later
           if (unlikely(sz >= 0 && sz < bytes)) {
                                   ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/thread_info.h:207:2: note: Taking true branch
           if (unlikely(sz >= 0 && sz < bytes)) {
           ^
   include/linux/thread_info.h:208:3: note: Taking true branch
                   if (!__builtin_constant_p(bytes))
                   ^
   include/linux/uaccess.h:191:13: note: Returning from 'check_copy_size'
           if (likely(check_copy_size(to, n, false)))
                      ^
   include/linux/compiler.h:77:40: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                                               ^
   include/linux/uaccess.h:191:2: note: Taking false branch
           if (likely(check_copy_size(to, n, false)))
           ^
   include/linux/uaccess.h:193:2: note: Returning value (loaded from 'n'), 
which participates in a condition later
           return n;
           ^~~~~~~~
   drivers/char/ipmi/ipmb_dev_int.c:147:6: note: Returning from 'copy_from_user'
           if (copy_from_user(&msg, buf, count))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/char/ipmi/ipmb_dev_int.c:147:6: note: Assuming the condition is false
           if (copy_from_user(&msg, buf, count))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/char/ipmi/ipmb_dev_int.c:147:2: note: Taking false branch
           if (copy_from_user(&msg, buf, count))
           ^
   drivers/char/ipmi/ipmb_dev_int.c:150:12: note: The right operand of '<' is a 
garbage value
           if (count < msg[0])
                     ^ ~~~~~~
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   8 warnings generated.
   drivers/pci/setup-bus.c:87:2: warning: Use of memory after it is freed 
[clang-analyzer-unix.Malloc]
           list_for_each_entry_safe(dev_res, tmp, head, list) {
           ^
   include/linux/list.h:716:7: note: expanded from macro 
'list_for_each_entry_safe'
                   n = list_next_entry(pos, member);                       \
                       ^
   include/linux/list.h:555:2: note: expanded from macro 'list_next_entry'
           list_entry((pos)->member.next, typeof(*(pos)), member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:494:25: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                  ^
   drivers/pci/setup-bus.c:1907:6: note: Assuming field 'parent' is non-null
           if (!io_res->parent && align)
               ^~~~~~~~~~~~~~~
   drivers/pci/setup-bus.c:1907:22: note: Left side of '&&' is false
           if (!io_res->parent && align)
--
   Suppressed 8 warnings (8 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.
   8 warnings generated.
   Suppressed 8 warnings (8 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   8 warnings generated.
   drivers/input/touchscreen/pixcir_i2c_ts.c:152:17: warning: Value stored to 
'dev' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct device *dev = &ts->client->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/input/touchscreen/pixcir_i2c_ts.c:152:17: note: Value stored to 
'dev' during its initialization is never read
           struct device *dev = &ts->client->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   9 warnings generated.
   drivers/video/fbdev/neofb.c:698:3: warning: Value stored to 'memlen' is 
never read [clang-analyzer-deadcode.DeadStores]
                   memlen = var->xres_virtual * var->bits_per_pixel *
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/neofb.c:698:3: note: Value stored to 'memlen' is never 
read
                   memlen = var->xres_virtual * var->bits_per_pixel *
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (7 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   8 warnings generated.
   Suppressed 8 warnings (7 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   8 warnings generated.
   drivers/video/fbdev/vermilion/cr_pll.c:122:2: warning: Value stored to 
'clock_val' is never read [clang-analyzer-deadcode.DeadStores]
           clock_val = ioread32(clock_reg) & ~CRVML_CLOCK_MASK;
           ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vermilion/cr_pll.c:122:2: note: Value stored to 
'clock_val' is never read
           clock_val = ioread32(clock_reg) & ~CRVML_CLOCK_MASK;
           ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 7 warnings (7 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.
   8 warnings generated.
   drivers/video/fbdev/s3fb.c:1254:2: warning: Call to function 'strcpy' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcpy(info->fix.id, s3_names [par->chip]);
           ^~~~~~
   drivers/video/fbdev/s3fb.c:1254:2: note: Call to function 'strcpy' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119
           strcpy(info->fix.id, s3_names [par->chip]);
           ^~~~~~
   Suppressed 7 warnings (7 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.
   8 warnings generated.
   drivers/video/fbdev/hgafb.c:301:21: warning: Value stored to 'q_save' is 
never read [clang-analyzer-deadcode.DeadStores]
           p_save = readw(p); q_save = readw(q);
                              ^
   drivers/video/fbdev/hgafb.c:301:21: note: Value stored to 'q_save' is never 
read
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (6 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   7 warnings generated.
>> drivers/dma-buf/dma-heap.c:101:6: warning: Branch condition evaluates to a 
>> garbage value [clang-analyzer-core.uninitialized.Branch]
           if (heap_allocation->fd)
               ^
   drivers/dma-buf/dma-heap.c:135:6: note: Assuming the condition is false
           if (nr >= ARRAY_SIZE(dma_heap_ioctl_cmds))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma-buf/dma-heap.c:135:2: note: Taking false branch
           if (nr >= ARRAY_SIZE(dma_heap_ioctl_cmds))
           ^
   drivers/dma-buf/dma-heap.c:145:6: note: Assuming the condition is false
           if ((ucmd & kcmd & IOC_IN) == 0)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma-buf/dma-heap.c:145:2: note: Taking false branch
           if ((ucmd & kcmd & IOC_IN) == 0)
           ^
   drivers/dma-buf/dma-heap.c:147:6: note: Assuming the condition is false
           if ((ucmd & kcmd & IOC_OUT) == 0)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma-buf/dma-heap.c:147:2: note: Taking false branch
           if ((ucmd & kcmd & IOC_OUT) == 0)
           ^
   drivers/dma-buf/dma-heap.c:149:14: note: '__UNIQUE_ID___x582' is <= 
'__UNIQUE_ID___y583'
           ksize = max(max(in_size, out_size), drv_size);
                       ^
   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); })
                   ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to 
see all)
   include/linux/minmax.h:52:33: note: expanded from macro 'max'
   #define max(x, y)       __careful_cmp(x, y, >)
                           ~~~~~~~~~~~~~~^~~~~~~~
   include/linux/minmax.h:38:14: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:31:25: note: expanded from macro '__cmp_once'
                   typeof(x) unique_x = (x);               \
                                         ^
   drivers/dma-buf/dma-heap.c:149:14: note: '?' condition is false
           ksize = max(max(in_size, out_size), drv_size);
                       ^
   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))
                            ^
   drivers/dma-buf/dma-heap.c:149:10: note: Assuming '__UNIQUE_ID___x584' is > 
'__UNIQUE_ID___y585'
           ksize = max(max(in_size, out_size), drv_size);
                   ^
   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))
                            ^~~~~~~~~~
   drivers/dma-buf/dma-heap.c:149:10: note: '?' condition is true
           ksize = max(max(in_size, out_size), drv_size);
                   ^
   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))
                            ^
   drivers/dma-buf/dma-heap.c:152:6: note: Assuming the condition is false
           if (ksize > sizeof(stack_kdata)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma-buf/dma-heap.c:152:2: note: Taking false branch
           if (ksize > sizeof(stack_kdata)) {
           ^
   drivers/dma-buf/dma-heap.c:158:6: note: Calling 'copy_from_user'
           if (copy_from_user(kdata, (void __user *)arg, in_size) != 0) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:2: note: Taking false branch
           if (likely(check_copy_size(to, n, false)))
           ^
   drivers/dma-buf/dma-heap.c:158:6: note: Returning from 'copy_from_user'
--
           ^
   net/core/flow_dissector.c:1026:32: note: Passing null pointer value via 1st 
parameter 'skb'
                   struct ethhdr *eth = eth_hdr(skb);
                                                ^~~
   net/core/flow_dissector.c:1026:24: note: Calling 'eth_hdr'
                   struct ethhdr *eth = eth_hdr(skb);
                                        ^~~~~~~~~~~~
   include/linux/if_ether.h:24:41: note: Passing null pointer value via 1st 
parameter 'skb'
           return (struct ethhdr *)skb_mac_header(skb);
                                                  ^~~
   include/linux/if_ether.h:24:26: note: Calling 'skb_mac_header'
           return (struct ethhdr *)skb_mac_header(skb);
                                   ^~~~~~~~~~~~~~~~~~~
   include/linux/skbuff.h:2559:9: note: Access to field 'head' results in a 
dereference of a null pointer (loaded from variable 'skb')
           return skb->head + skb->mac_header;
                  ^~~
   Suppressed 14 warnings (14 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.
   16 warnings generated.
   net/sunrpc/auth_gss/gss_mech_switch.c:55:3: warning: Call to function 
'strcpy' is insecure as it does not provide bounding of the memory buffer. 
Replace unbounded copy functions with analogous functions that support length 
arguments such as 'strlcpy'. CWE-119 
[clang-analyzer-security.insecureAPI.strcpy]
                   strcpy(new, prefix);
                   ^~~~~~
   net/sunrpc/auth_gss/gss_mech_switch.c:55:3: note: Call to function 'strcpy' 
is insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119
                   strcpy(new, prefix);
                   ^~~~~~
   net/sunrpc/auth_gss/gss_mech_switch.c:56:3: warning: Call to function 
'strcat' is insecure as it does not provide bounding of the memory buffer. 
Replace unbounded copy functions with analogous functions that support length 
arguments such as 'strlcat'. CWE-119 
[clang-analyzer-security.insecureAPI.strcpy]
                   strcat(new, name);
                   ^~~~~~
   net/sunrpc/auth_gss/gss_mech_switch.c:56:3: note: Call to function 'strcat' 
is insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119
                   strcat(new, name);
                   ^~~~~~
   Suppressed 14 warnings (14 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.
   15 warnings generated.
   net/sunrpc/auth_gss/svcauth_gss.c:1316:3: warning: Value stored to 'status' 
is never read [clang-analyzer-deadcode.DeadStores]
                   status = -EINVAL;
                   ^        ~~~~~~~
   net/sunrpc/auth_gss/svcauth_gss.c:1316:3: note: Value stored to 'status' is 
never read
                   status = -EINVAL;
                   ^        ~~~~~~~
   Suppressed 14 warnings (14 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.
   14 warnings generated.
   Suppressed 14 warnings (14 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.
   21 warnings generated.
   net/sunrpc/auth_gss/gss_rpc_xdr.c:303:2: warning: Value stored to 'p' is 
never read [clang-analyzer-deadcode.DeadStores]
           p = xdr_decode_hyper(p, &status->major_status);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:303:2: note: Value stored to 'p' is never 
read
           p = xdr_decode_hyper(p, &status->major_status);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:314:2: warning: Value stored to 'p' is 
never read [clang-analyzer-deadcode.DeadStores]
           p = xdr_decode_hyper(p, &status->minor_status);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:314:2: note: Value stored to 'p' is never 
read
           p = xdr_decode_hyper(p, &status->minor_status);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:365:2: warning: Value stored to 'err' is 
never read [clang-analyzer-deadcode.DeadStores]
           err = gssx_enc_option(xdr, &opt);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:365:2: note: Value stored to 'err' is 
never read
           err = gssx_enc_option(xdr, &opt);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:607:2: warning: Value stored to 'p' is 
never read [clang-analyzer-deadcode.DeadStores]
           p = xdr_encode_hyper(p, ctx->ctx_flags);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:607:2: note: Value stored to 'p' is never 
read
           p = xdr_encode_hyper(p, ctx->ctx_flags);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:670:2: warning: Value stored to 'p' is 
never read [clang-analyzer-deadcode.DeadStores]
           p = xdr_decode_hyper(p, &ctx->ctx_flags);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:670:2: note: Value stored to 'p' is never 
read
           p = xdr_decode_hyper(p, &ctx->ctx_flags);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:698:2: warning: Value stored to 'p' is 
never read [clang-analyzer-deadcode.DeadStores]
           p = xdr_encode_hyper(p, cb->initiator_addrtype);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:698:2: note: Value stored to 'p' is never 
read
           p = xdr_encode_hyper(p, cb->initiator_addrtype);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:709:2: warning: Value stored to 'p' is 
never read [clang-analyzer-deadcode.DeadStores]
           p = xdr_encode_hyper(p, cb->acceptor_addrtype);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/sunrpc/auth_gss/gss_rpc_xdr.c:709:2: note: Value stored to 'p' is never 
read
           p = xdr_encode_hyper(p, cb->acceptor_addrtype);
           ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 14 warnings (14 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.
   30 warnings generated.
   Suppressed 30 warnings (30 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.
   15 warnings generated.
   net/rxrpc/af_rxrpc.c:603:2: warning: Value stored to 'ret' is never read 
[clang-analyzer-deadcode.DeadStores]
           ret = -EOPNOTSUPP;
           ^     ~~~~~~~~~~~
   net/rxrpc/af_rxrpc.c:603:2: note: Value stored to 'ret' is never read
           ret = -EOPNOTSUPP;
           ^     ~~~~~~~~~~~
>> net/rxrpc/af_rxrpc.c:649:22: warning: The left operand of '>' is a garbage 
>> value [clang-analyzer-core.UndefinedBinaryOperatorResult]
                           if (min_sec_level > RXRPC_SECURITY_MAX)
                               ~~~~~~~~~~~~~ ^
   net/rxrpc/af_rxrpc.c:595:26: note: Left side of '&&' is false
           struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
                                   ^
   net/rxrpc/ar-internal.h:162:24: note: expanded from macro 'rxrpc_sk'
   #define rxrpc_sk(__sk) container_of((__sk), struct rxrpc_sock, sk)
                          ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   net/rxrpc/af_rxrpc.c:595:26: note: Taking false branch
           struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
                                   ^
   net/rxrpc/ar-internal.h:162:24: note: expanded from macro 'rxrpc_sk'
   #define rxrpc_sk(__sk) container_of((__sk), struct rxrpc_sock, sk)
                          ^
   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:324:2: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           ^
   include/linux/compiler_types.h:312:2: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:304:3: note: expanded from macro 
'__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   net/rxrpc/af_rxrpc.c:595:26: note: Loop condition is false.  Exiting loop
           struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
                                   ^
   net/rxrpc/ar-internal.h:162:24: note: expanded from macro 'rxrpc_sk'
   #define rxrpc_sk(__sk) container_of((__sk), struct rxrpc_sock, sk)
                          ^
   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:324:2: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           ^
   include/linux/compiler_types.h:312:2: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:302:2: note: expanded from macro 
'__compiletime_assert'
           do {                                                            \
           ^
   net/rxrpc/af_rxrpc.c:596:2: note: 'min_sec_level' declared without an 
initial value
           unsigned int min_sec_level;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rxrpc/af_rxrpc.c:600:2: note: Assuming the condition is true
           _enter(",%d,%d,,%d", level, optname, optlen);
           ^
   net/rxrpc/ar-internal.h:1165:6: note: expanded from macro '_enter'
           if (unlikely(rxrpc_debug & RXRPC_DEBUG_KENTER)) \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                             ^~~~
   net/rxrpc/af_rxrpc.c:600:2: note: Taking false branch
           _enter(",%d,%d,,%d", level, optname, optlen);
           ^
   net/rxrpc/ar-internal.h:1165:2: note: expanded from macro '_enter'
           if (unlikely(rxrpc_debug & RXRPC_DEBUG_KENTER)) \
           ^
   net/rxrpc/af_rxrpc.c:600:2: note: Loop condition is false.  Exiting loop
           _enter(",%d,%d,,%d", level, optname, optlen);
           ^
   net/rxrpc/ar-internal.h:1163:29: note: expanded from macro '_enter'
   #define _enter(FMT,...)                                 \
                                                           ^
   net/rxrpc/af_rxrpc.c:605:6: note: Assuming 'level' is equal to SOL_RXRPC
           if (level == SOL_RXRPC) {
               ^~~~~~~~~~~~~~~~~~
   net/rxrpc/af_rxrpc.c:605:2: note: Taking true branch
           if (level == SOL_RXRPC) {
           ^
   net/rxrpc/af_rxrpc.c:606:3: note: Control jumps to 'case 4:'  at line 637
                   switch (optname) {
                   ^
   net/rxrpc/af_rxrpc.c:639:8: note: Assuming the condition is false
                           if (optlen != sizeof(unsigned int))
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rxrpc/af_rxrpc.c:639:4: note: Taking false branch
                           if (optlen != sizeof(unsigned int))
                           ^
   net/rxrpc/af_rxrpc.c:642:8: note: Assuming field 'skc_state' is equal to 
RXRPC_UNBOUND
                           if (rx->sk.sk_state != RXRPC_UNBOUND)
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rxrpc/af_rxrpc.c:642:4: note: Taking false branch
                           if (rx->sk.sk_state != RXRPC_UNBOUND)
                           ^
   net/rxrpc/af_rxrpc.c:644:10: note: Calling 'copy_from_sockptr'
                           ret = copy_from_sockptr(&min_sec_level, optval,

vim +313 arch/x86/kernel/cpu/mce/dev-mcelog.c

5de97c9f6d85fd arch/x86/kernel/cpu/mcheck/dev-mcelog.c Tony Luck       
2017-03-27  293  
5de97c9f6d85fd arch/x86/kernel/cpu/mcheck/dev-mcelog.c Tony Luck       
2017-03-27  294  static ssize_t mce_chrdev_write(struct file *filp, const char 
__user *ubuf,
5de97c9f6d85fd arch/x86/kernel/cpu/mcheck/dev-mcelog.c Tony Luck       
2017-03-27  295                                  size_t usize, loff_t *off)
5de97c9f6d85fd arch/x86/kernel/cpu/mcheck/dev-mcelog.c Tony Luck       
2017-03-27  296  {
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  297          struct mce m;
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  298  
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  299          if (!capable(CAP_SYS_ADMIN))
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  300                  return -EPERM;
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  301          /*
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  302           * There are some cases where real MSR reads could slip
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  303           * through.
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  304           */
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  305          if (!boot_cpu_has(X86_FEATURE_MCE) || 
!boot_cpu_has(X86_FEATURE_MCA))
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  306                  return -EIO;
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  307  
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  308          if ((unsigned long)usize > sizeof(struct mce))
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  309                  usize = sizeof(struct mce);
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  310          if (copy_from_user(&m, ubuf, usize))
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  311                  return -EFAULT;
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  312  
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13 @313          if (m.extcpu >= num_possible_cpus() || 
!cpu_online(m.extcpu))
5de97c9f6d85fd arch/x86/kernel/cpu/mcheck/dev-mcelog.c Tony Luck       
2017-03-27  314                  return -EINVAL;
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  315  
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  316          /*
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  317           * Need to give user space some time to set everything 
up,
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  318           * so do it a jiffie or two later everywhere.
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  319           */
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  320          schedule_timeout(2);
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  321  
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  322          blocking_notifier_call_chain(&mce_injector_chain, 0, 
&m);
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  323  
fbe9ff9eafb66b arch/x86/kernel/cpu/mcheck/dev-mcelog.c Borislav Petkov 
2017-06-13  324          return usize;
5de97c9f6d85fd arch/x86/kernel/cpu/mcheck/dev-mcelog.c Tony Luck       
2017-03-27  325  }
5de97c9f6d85fd arch/x86/kernel/cpu/mcheck/dev-mcelog.c Tony Luck       
2017-03-27  326  

:::::: The code at line 313 was first introduced by commit
:::::: fbe9ff9eafb66b78b79c135ebc24fd2ca5498217 x86/mce: Get rid of 
register_mce_write_callback()

:::::: TO: Borislav Petkov <[email protected]>
:::::: CC: Ingo Molnar <[email protected]>

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

Attachment: .config.gz
Description: application/gzip

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

Reply via email to