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: 4 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 >>) compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:277:3: note: expanded from macro '__native_word' (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ ^ kernel/bpf/hashtab.c:1313:3: note: Left side of '||' is false hlist_nulls_for_each_entry_safe(l, n, head, hash_node) { ^ include/linux/rculist_nulls.h:184:13: note: expanded from macro 'hlist_nulls_for_each_entry_safe' pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \ ^ include/linux/rcupdate.h:381:25: note: expanded from macro 'rcu_dereference_raw' typeof(p) ________p1 = READ_ONCE(p); \ ^ include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:277:3: note: expanded from macro '__native_word' (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ ^ kernel/bpf/hashtab.c:1313:3: note: Left side of '||' is true hlist_nulls_for_each_entry_safe(l, n, head, hash_node) { ^ include/linux/rculist_nulls.h:184:13: note: expanded from macro 'hlist_nulls_for_each_entry_safe' pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \ ^ include/linux/rcupdate.h:381:25: note: expanded from macro 'rcu_dereference_raw' typeof(p) ________p1 = READ_ONCE(p); \ ^ include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:38: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ kernel/bpf/hashtab.c:1313:3: note: Taking false branch hlist_nulls_for_each_entry_safe(l, n, head, hash_node) { ^ include/linux/rculist_nulls.h:184:13: note: expanded from macro 'hlist_nulls_for_each_entry_safe' pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \ ^ include/linux/rcupdate.h:381:25: note: expanded from macro 'rcu_dereference_raw' typeof(p) ________p1 = READ_ONCE(p); \ ^ include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:315:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:303:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:295:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ kernel/bpf/hashtab.c:1313:3: note: Loop condition is false. Exiting loop hlist_nulls_for_each_entry_safe(l, n, head, hash_node) { ^ include/linux/rculist_nulls.h:184:13: note: expanded from macro 'hlist_nulls_for_each_entry_safe' pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \ ^ include/linux/rcupdate.h:381:25: note: expanded from macro 'rcu_dereference_raw' typeof(p) ________p1 = READ_ONCE(p); \ ^ include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:315:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:303:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:293:2: note: expanded from macro '__compiletime_assert' do { \ ^ kernel/bpf/hashtab.c:1313:3: note: Use of memory after it is freed hlist_nulls_for_each_entry_safe(l, n, head, hash_node) { ^ include/linux/rculist_nulls.h:185:5: note: expanded from macro 'hlist_nulls_for_each_entry_safe' (!is_a_nulls(pos)) && \ ^ ~~~ kernel/bpf/hashtab.c:1682:3: warning: Value stored to 'b' is never read [clang-analyzer-deadcode.DeadStores] b = &htab->buckets[bucket_id++]; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/bpf/hashtab.c:1682:3: note: Value stored to 'b' is never read b = &htab->buckets[bucket_id++]; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 17 warnings (10 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. 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. 4 warnings generated. Suppressed 4 warnings (4 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. 11 warnings generated. Suppressed 11 warnings (4 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. 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. 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. 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. 13 warnings generated. drivers/pci/probe.c:1251:3: warning: Value stored to 'broken' is never read [clang-analyzer-deadcode.DeadStores] broken = 1; ^ ~ drivers/pci/probe.c:1251:3: note: Value stored to 'broken' is never read broken = 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. 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. 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. 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]
