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]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
