CC: [email protected] CC: [email protected] CC: [email protected] TO: Kishon Vijay Abraham I <[email protected]> CC: Vignesh Raghavendra <[email protected]> CC: Lorenzo Pieralisi <[email protected]> CC: Bjorn Helgaas <[email protected]>
tree: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git ti-rt-linux-5.10.y head: 716065a9435e7c06986b8497aa853a7b747a9570 commit: 5fe4c2dfaa4e6413f98aedd00c8b2b372e5b0103 [3870/9320] PCI: endpoint: Add support to associate secondary EPC with EPF :::::: branch date: 2 days ago :::::: commit date: 6 months ago config: riscv-randconfig-c006-20210916 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c8b3d7d6d6de37af68b2f379d0e37304f78e115f) 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 riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu git remote add ti git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git git fetch --no-tags ti ti-rt-linux-5.10.y git checkout 5fe4c2dfaa4e6413f98aedd00c8b2b372e5b0103 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 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 >>) a = b = c = d = e = f = g = h = ss1 = ss2 = tt1 = tt2 = 0; ^ ~~~~~~~ crypto/sm3_generic.c:121:46: note: Although the value stored to 'tt1' is used in the enclosing expression, the value is never actually read from 'tt1' a = b = c = d = e = f = g = h = ss1 = ss2 = tt1 = tt2 = 0; ^ ~~~~~~~ crypto/sm3_generic.c:121:52: warning: Although the value stored to 'tt2' is used in the enclosing expression, the value is never actually read from 'tt2' [clang-analyzer-deadcode.DeadStores] a = b = c = d = e = f = g = h = ss1 = ss2 = tt1 = tt2 = 0; ^ ~ crypto/sm3_generic.c:121:52: note: Although the value stored to 'tt2' is used in the enclosing expression, the value is never actually read from 'tt2' a = b = c = d = e = f = g = h = ss1 = ss2 = tt1 = tt2 = 0; ^ ~ 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. 6 warnings generated. include/linux/fsnotify_backend.h:262:18: warning: Access to field 'dentry' results in a dereference of a null pointer (loaded from variable 'data') [clang-analyzer-core.NullDereference] return d_inode(((const struct path *)data)->dentry); ^ fs/notify/fsnotify.c:184:22: note: Assuming 'path' is null struct mount *mnt = path ? real_mount(path->mnt) : NULL; ^~~~ fs/notify/fsnotify.c:184:22: note: '?' condition is false fs/notify/fsnotify.c:199:6: note: Assuming field 'i_fsnotify_marks' is non-null if (!inode->i_fsnotify_marks && !inode->i_sb->s_fsnotify_marks && ^~~~~~~~~~~~~~~~~~~~~~~~ fs/notify/fsnotify.c:199:31: note: Left side of '&&' is false if (!inode->i_fsnotify_marks && !inode->i_sb->s_fsnotify_marks && ^ fs/notify/fsnotify.c:204:18: note: Calling 'fsnotify_event_needs_parent' parent_needed = fsnotify_event_needs_parent(inode, mnt, mask); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/notify/fsnotify.c:152:6: note: Assuming the condition is true if (mask & FS_ISDIR) ^~~~~~~~~~~~~~~ fs/notify/fsnotify.c:152:2: note: Taking true branch if (mask & FS_ISDIR) ^ fs/notify/fsnotify.c:153:3: note: Returning zero, which participates in a condition later return false; ^~~~~~~~~~~~ fs/notify/fsnotify.c:204:18: note: Returning from 'fsnotify_event_needs_parent' parent_needed = fsnotify_event_needs_parent(inode, mnt, mask); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/notify/fsnotify.c:205:6: note: Assuming 'parent_watched' is true if (!parent_watched && !parent_needed) ^~~~~~~~~~~~~~~ fs/notify/fsnotify.c:205:22: note: Left side of '&&' is false if (!parent_watched && !parent_needed) ^ fs/notify/fsnotify.c:212:15: note: 'parent_watched' is true if (unlikely(parent_watched && !p_mask)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ fs/notify/fsnotify.c:212:15: note: Left side of '&&' is true if (unlikely(parent_watched && !p_mask)) ^ fs/notify/fsnotify.c:212:33: note: Assuming 'p_mask' is not equal to 0 if (unlikely(parent_watched && !p_mask)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ fs/notify/fsnotify.c:212:2: note: Taking false branch if (unlikely(parent_watched && !p_mask)) ^ fs/notify/fsnotify.c:220:6: note: 'parent_needed' is false if (parent_needed || parent_interested) { ^~~~~~~~~~~~~ fs/notify/fsnotify.c:220:6: note: Left side of '||' is false fs/notify/fsnotify.c:220:23: note: Assuming 'parent_interested' is true if (parent_needed || parent_interested) { ^~~~~~~~~~~~~~~~~ fs/notify/fsnotify.c:220:2: note: Taking true branch if (parent_needed || parent_interested) { ^ fs/notify/fsnotify.c:222:45: note: Passing null pointer value via 1st parameter 'data' WARN_ON_ONCE(inode != fsnotify_data_inode(data, data_type)); ^ include/asm-generic/bug.h:102:25: note: expanded from macro 'WARN_ON_ONCE' int __ret_warn_on = !!(condition); \ ^~~~~~~~~ fs/notify/fsnotify.c:222:25: note: Calling 'fsnotify_data_inode' WARN_ON_ONCE(inode != fsnotify_data_inode(data, data_type)); ^ include/asm-generic/bug.h:102:25: note: expanded from macro 'WARN_ON_ONCE' int __ret_warn_on = !!(condition); \ ^~~~~~~~~ include/linux/fsnotify_backend.h:258:2: note: Control jumps to 'case FSNOTIFY_EVENT_PATH:' at line 261 switch (data_type) { ^ include/linux/fsnotify_backend.h:262:18: note: Access to field 'dentry' results in a dereference of a null pointer (loaded from variable 'data') return d_inode(((const struct path *)data)->dentry); ^ ~~~~ 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. 12 warnings generated. Suppressed 12 warnings (5 in non-user code, 7 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. 14 warnings generated. >> drivers/pci/endpoint/pci-epf-core.c:84:17: warning: Value stored to 'dev' >> during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device *dev = epf->epc->dev.parent; ^~~ ~~~~~~~~~~~~~~~~~~~~ drivers/pci/endpoint/pci-epf-core.c:84:17: note: Value stored to 'dev' during its initialization is never read struct device *dev = epf->epc->dev.parent; ^~~ ~~~~~~~~~~~~~~~~~~~~ include/linux/log2.h:57:13: warning: The result of the left shift is undefined due to shifting by '64', which is greater or equal to the width of type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult] return 1UL << fls_long(n - 1); ^ drivers/pci/endpoint/pci-epf-core.c:130:6: note: Assuming 'size' is >= 128 if (size < 128) ^~~~~~~~~~ drivers/pci/endpoint/pci-epf-core.c:130:2: note: Taking false branch if (size < 128) ^ drivers/pci/endpoint/pci-epf-core.c:133:6: note: Assuming 'align' is 0 if (align) ^~~~~ drivers/pci/endpoint/pci-epf-core.c:133:2: note: Taking false branch if (align) ^ drivers/pci/endpoint/pci-epf-core.c:136:10: note: '?' condition is false size = roundup_pow_of_two(size); ^ include/linux/log2.h:175:2: note: expanded from macro 'roundup_pow_of_two' __builtin_constant_p(n) ? ( \ ^ drivers/pci/endpoint/pci-epf-core.c:136:10: note: Calling '__roundup_pow_of_two' size = roundup_pow_of_two(size); ^ include/linux/log2.h:179:2: note: expanded from macro 'roundup_pow_of_two' __roundup_pow_of_two(n) \ ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/log2.h:57:16: note: Calling 'fls_long' return 1UL << fls_long(n - 1); ^~~~~~~~~~~~~~~ include/linux/bitops.h:184:2: note: Taking false branch if (sizeof(l) == 4) ^ include/linux/bitops.h:186:9: note: Calling 'fls64' return fls64(l); ^~~~~~~~ include/asm-generic/bitops/fls64.h:29:6: note: 'x' is not equal to 0 if (x == 0) ^ include/asm-generic/bitops/fls64.h:29:2: note: Taking false branch if (x == 0) ^ include/asm-generic/bitops/fls64.h:31:2: note: Returning the value 64 return __fls(x) + 1; ^~~~~~~~~~~~~~~~~~~ include/linux/bitops.h:186:9: note: Returning from 'fls64' return fls64(l); ^~~~~~~~ include/linux/bitops.h:186:2: note: Returning the value 64 return fls64(l); ^~~~~~~~~~~~~~~ include/linux/log2.h:57:16: note: Returning from 'fls_long' return 1UL << fls_long(n - 1); ^~~~~~~~~~~~~~~ include/linux/log2.h:57:13: note: The result of the left shift is undefined due to shifting by '64', which is greater or equal to the width of type 'unsigned long' return 1UL << fls_long(n - 1); ^ ~~~~~~~~~~~~~~~ Suppressed 12 warnings (5 in non-user code, 7 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. 6 warnings generated. fs/kernfs/symlink.c:77: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(s, "../"); ^~~~~~ fs/kernfs/symlink.c:77: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(s, "../"); ^~~~~~ 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. 6 warnings generated. fs/sysfs/file.c:54:2: warning: Null pointer passed as 1st argument to memory set function [clang-analyzer-unix.cstring.NullArg] memset(buf, 0, PAGE_SIZE); ^ ~~~ fs/sysfs/file.c:49:10: note: Calling 'seq_get_buf' count = seq_get_buf(sf, &buf); ^~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:65:9: note: Assuming field 'count' is <= field 'size' BUG_ON(m->count > m->size); ^ include/asm-generic/bug.h:63:45: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^~~~~~~~~ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ include/linux/seq_file.h:65:2: note: Taking false branch BUG_ON(m->count > m->size); ^ include/asm-generic/bug.h:63:32: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^ include/linux/seq_file.h:65:2: note: Loop condition is false. Exiting loop BUG_ON(m->count > m->size); ^ include/asm-generic/bug.h:63:27: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) vim +/dev +84 drivers/pci/endpoint/pci-epf-core.c 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 71 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 72 /** 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 73 * pci_epf_free_space() - free the allocated PCI EPF register space 9b41d19aff4090 Krzysztof Kozlowski 2020-07-29 74 * @epf: the EPF device from whom to free the memory 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 75 * @addr: the virtual address of the PCI EPF register space 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 76 * @bar: the BAR number corresponding to the register space 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 77 * @type: Identifies if the allocated space is for primary EPC or secondary EPC 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 78 * 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 79 * Invoke to free the allocated PCI EPF register space. 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 80 */ 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 81 void pci_epf_free_space(struct pci_epf *epf, void *addr, enum pci_barno bar, 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 82 enum pci_epc_interface_type type) 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 83 { b330104fa76df3 Kishon Vijay Abraham I 2018-01-11 @84 struct device *dev = epf->epc->dev.parent; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 85 struct pci_epf_bar *epf_bar; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 86 struct pci_epc *epc; 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 87 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 88 if (!addr) 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 89 return; 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 90 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 91 if (type == PRIMARY_INTERFACE) { 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 92 epc = epf->epc; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 93 epf_bar = epf->bar; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 94 } else { 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 95 epc = epf->sec_epc; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 96 epf_bar = epf->sec_epc_bar; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 97 } 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 98 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 99 dev = epc->dev.parent; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 100 dma_free_coherent(dev, epf_bar[bar].size, addr, 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 101 epf_bar[bar].phys_addr); 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 102 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 103 epf_bar[bar].phys_addr = 0; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 104 epf_bar[bar].addr = NULL; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 105 epf_bar[bar].size = 0; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 106 epf_bar[bar].barno = 0; 5fe4c2dfaa4e64 Kishon Vijay Abraham I 2021-03-19 107 epf_bar[bar].flags = 0; 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 108 } 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 109 EXPORT_SYMBOL_GPL(pci_epf_free_space); 5e8cb4033807e3 Kishon Vijay Abraham I 2017-04-10 110 :::::: The code at line 84 was first introduced by commit :::::: b330104fa76df3eae6e199a23791fed5d35f06b4 PCI: endpoint: Use EPC's device in dma_alloc_coherent()/dma_free_coherent() :::::: TO: Kishon Vijay Abraham I <[email protected]> :::::: CC: Lorenzo Pieralisi <[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]
