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]

Attachment: .config.gz
Description: application/gzip

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

Reply via email to