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: 5 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 >>)
           ^
   kernel/nsproxy.c:560:6: note: Assuming the condition is true
           if (proc_ns_file(file))
               ^~~~~~~~~~~~~~~~~~
   kernel/nsproxy.c:560:2: note: Taking true branch
           if (proc_ns_file(file))
           ^
   kernel/nsproxy.c:561:29: note: Passing null pointer value via 2nd parameter 
'ns'
                   err = validate_ns(&nsset, ns);
                                             ^~
   kernel/nsproxy.c:561:9: note: Calling 'validate_ns'
                   err = validate_ns(&nsset, ns);
                         ^~~~~~~~~~~~~~~~~~~~~~~
   kernel/nsproxy.c:351:9: note: Access to field 'ops' results in a dereference 
of a null pointer (loaded from variable 'ns')
           return ns->ops->install(nsset, ns);
                  ^~
   Suppressed 16 warnings (9 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.
   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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   3 warnings generated.
   lib/math/reciprocal_div.c:48:14: 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 long' [clang-analyzer-core.UndefinedBinaryOperatorResult]
           mlow = 1ULL << (32 + l);
                       ^  ~~~~~~~~
   lib/math/reciprocal_div.c:44:2: note: Taking true branch
           WARN(l == 32,
           ^
   include/asm-generic/bug.h:129:2: note: expanded from macro 'WARN'
           if (unlikely(__ret_warn_on))                                    \
           ^
   lib/math/reciprocal_div.c:44:2: note: Loop condition is false.  Exiting loop
           WARN(l == 32,
           ^
   include/asm-generic/bug.h:130:3: note: expanded from macro 'WARN'
                   __WARN_printf(TAINT_WARN, format);                      \
                   ^
   include/asm-generic/bug.h:96:3: note: expanded from macro '__WARN_printf'
                   instrumentation_begin();                                \
                   ^
   include/linux/instrumentation.h:53:34: note: expanded from macro 
'instrumentation_begin'
   # define instrumentation_begin()        do { } while(0)
                                           ^
   lib/math/reciprocal_div.c:44:2: note: Loop condition is false.  Exiting loop
           WARN(l == 32,
           ^
   include/asm-generic/bug.h:130:3: note: expanded from macro 'WARN'
                   __WARN_printf(TAINT_WARN, format);                      \
                   ^
   include/asm-generic/bug.h:98:3: note: expanded from macro '__WARN_printf'
                   __WARN_FLAGS(BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\
                   ^
   arch/riscv/include/asm/bug.h:79:29: note: expanded from macro '__WARN_FLAGS'
   #define __WARN_FLAGS(flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags))
                               ^
   arch/riscv/include/asm/bug.h:53:32: note: expanded from macro '__BUG_FLAGS'
   #define __BUG_FLAGS(flags)                                      \
                                                                   ^
   lib/math/reciprocal_div.c:44:2: note: Loop condition is false.  Exiting loop
           WARN(l == 32,
           ^
   include/asm-generic/bug.h:130:3: note: expanded from macro 'WARN'
                   __WARN_printf(TAINT_WARN, format);                      \
                   ^
   include/asm-generic/bug.h:99:3: note: expanded from macro '__WARN_printf'
                   instrumentation_end();                                  \
                   ^
   include/linux/instrumentation.h:54:33: note: expanded from macro 
'instrumentation_end'
   # define instrumentation_end()          do { } while(0)
                                           ^
   lib/math/reciprocal_div.c:44:2: note: Loop condition is false.  Exiting loop
           WARN(l == 32,
           ^
   include/asm-generic/bug.h:130:3: note: expanded from macro 'WARN'
                   __WARN_printf(TAINT_WARN, format);                      \
                   ^
   include/asm-generic/bug.h:95:38: note: expanded from macro '__WARN_printf'
   #define __WARN_printf(taint, arg...) do {                               \
                                        ^
   lib/math/reciprocal_div.c:48:14: 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 long'
           mlow = 1ULL << (32 + l);
                       ^  ~~~~~~~~
   Suppressed 2 warnings (2 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.
>> 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.
   49 warnings generated.
   crypto/algapi.c:1004:20: warning: The result of the left shift is undefined 
due to shifting by '32', which is greater or equal to the width of type 'int' 
[clang-analyzer-core.UndefinedBinaryOperatorResult]
                   relalign = d ? 1 << __ffs(d) : size;
                                    ^  ~~~~~~~~
   crypto/algapi.c:998:2: note: Taking true branch
           if (!IS_ENABLED(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)) {
           ^
   crypto/algapi.c:1004:14: note: Assuming 'd' is not equal to 0
                   relalign = d ? 1 << __ffs(d) : size;
                              ^
   crypto/algapi.c:1004:14: note: '?' condition is true
   crypto/algapi.c:1004:23: note: Calling '__ffs'
                   relalign = d ? 1 << __ffs(d) : size;
                                       ^~~~~~~~
   include/asm-generic/bitops/__ffs.h:18:6: note: Assuming the condition is true
           if ((word & 0xffffffff) == 0) {
               ^~~~~~~~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/__ffs.h:18:2: note: Taking true branch
           if ((word & 0xffffffff) == 0) {
           ^
   include/asm-generic/bitops/__ffs.h:19:3: note: The value 32 is assigned to 
'num'
                   num += 32;
                   ^~~~~~~~~
   include/asm-generic/bitops/__ffs.h:23:6: note: Assuming the condition is 
false
           if ((word & 0xffff) == 0) {
               ^~~~~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/__ffs.h:23:2: note: Taking false branch
           if ((word & 0xffff) == 0) {
           ^
   include/asm-generic/bitops/__ffs.h:27:6: note: Assuming the condition is 
false

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