CC: [email protected]
CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: "Saheed O. Bolarinwa" <[email protected]>

Hi "Saheed,

[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on helgaas-pci/next]
[also build test WARNING on v5.15-rc1 next-20210917]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Saheed-O-Bolarinwa/PCI-ASPM-Remove-struct-pcie_link_state-parent/20210916-175210
base:   https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
:::::: branch date: 27 hours ago
:::::: commit date: 27 hours 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
        # 
https://github.com/0day-ci/linux/commit/a2a494c1e1531309518be74ed2e406334b716fbe
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Saheed-O-Bolarinwa/PCI-ASPM-Remove-struct-pcie_link_state-parent/20210916-175210
        git checkout a2a494c1e1531309518be74ed2e406334b716fbe
        # 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 >>)
                              ^   ~~~~~~~
   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.
   15 warnings generated.
   Suppressed 15 warnings (8 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.
   Suppressed 14 warnings (7 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.
   Suppressed 14 warnings (7 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.
   Suppressed 14 warnings (7 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.
   Suppressed 14 warnings (7 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.
   18 warnings generated.
   drivers/regulator/mt6358-regulator.c:278:47: warning: The result of the 
right shift is undefined because the right operand is negative 
[clang-analyzer-core.UndefinedBinaryOperatorResult]
           selector = (selector & info->desc.vsel_mask) >>
                                                        ^
   drivers/regulator/mt6358-regulator.c:271:6: note: Assuming 'ret' is equal to 0
           if (ret != 0) {
               ^~~~~~~~
   drivers/regulator/mt6358-regulator.c:271:2: note: Taking false branch
           if (ret != 0) {
           ^
   drivers/regulator/mt6358-regulator.c:278:47: note: The result of the right 
shift is undefined because the right operand is negative
           selector = (selector & info->desc.vsel_mask) >>
                                                        ^
   drivers/regulator/mt6358-regulator.c:302:38: warning: The result of the 
right shift is undefined because the right operand is negative 
[clang-analyzer-core.UndefinedBinaryOperatorResult]
           ret = (regval & info->da_vsel_mask) >> (ffs(info->da_vsel_mask) - 1);
                                               ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/mt6358-regulator.c:295:6: note: Assuming 'ret' is equal to 0
           if (ret != 0) {
               ^~~~~~~~
   drivers/regulator/mt6358-regulator.c:295:2: note: Taking false branch
           if (ret != 0) {
           ^
   drivers/regulator/mt6358-regulator.c:302:38: note: The result of the right 
shift is undefined because the right operand is negative
           ret = (regval & info->da_vsel_mask) >> (ffs(info->da_vsel_mask) - 1);
                                               ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/mt6358-regulator.c:342:6: warning: Assigned value is 
garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           val <<= ffs(info->modeset_mask) - 1;
               ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/mt6358-regulator.c:328:2: note: Control jumps to 'case 2:' 
 at line 332
           switch (mode) {
           ^
   drivers/regulator/mt6358-regulator.c:334:3: note:  Execution continues on 
line 339
                   break;
                   ^
   drivers/regulator/mt6358-regulator.c:339:2: note: Loop condition is false.  
Exiting loop
           dev_dbg(&rdev->dev, "mt6358 buck set_mode %#x, %#x, %#x\n",
           ^
   include/linux/dev_printk.h:158:2: note: expanded from macro 'dev_dbg'
           dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dev_printk.h:128:3: note: expanded from macro 'dev_printk'
                   dev_printk_index_emit(level, fmt);                      \
                   ^
   include/linux/dev_printk.h:105:2: note: expanded from macro 
'dev_printk_index_emit'
           printk_index_subsys_emit("%s %s: ", level, fmt)
           ^
   include/linux/printk.h:413:2: note: expanded from macro 
'printk_index_subsys_emit'
           __printk_index_emit(fmt, level, subsys_fmt_prefix)
           ^
   include/linux/printk.h:392:34: note: expanded from macro 
'__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   drivers/regulator/mt6358-regulator.c:342:6: note: Assigned value is garbage 
or undefined
           val <<= ffs(info->modeset_mask) - 1;
               ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/mt6358-regulator.c:360:40: warning: The result of the 
right shift is undefined because the right operand is negative 
[clang-analyzer-core.UndefinedBinaryOperatorResult]
           switch ((regval & info->modeset_mask) >> (ffs(info->modeset_mask) - 
1)) {
                                                 ^  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/mt6358-regulator.c:354:6: note: Assuming 'ret' is equal to 0
           if (ret != 0) {
               ^~~~~~~~
   drivers/regulator/mt6358-regulator.c:354:2: note: Taking false branch
           if (ret != 0) {
           ^
   drivers/regulator/mt6358-regulator.c:360:40: note: The result of the right 
shift is undefined because the right operand is negative
           switch ((regval & info->modeset_mask) >> (ffs(info->modeset_mask) - 
1)) {
                                                 ^  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 14 warnings (7 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.
   Suppressed 13 warnings (6 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.
   Suppressed 13 warnings (6 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.
   Suppressed 13 warnings (6 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.
   Suppressed 13 warnings (6 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.
   15 warnings generated.
>> drivers/pci/pcie/aspm.c:963:35: warning: Access to field 'aspm_support' 
>> results in a dereference of an undefined pointer value (loaded from variable 
>> 'link') [clang-analyzer-core.NullDereference]
                   dev->link_state->aspm_capable = link->aspm_support;
                                                   ^
   drivers/pci/pcie/aspm.c:1024:6: note: Assuming 'aspm_disabled' is 0
           if (aspm_disabled || !link)
               ^~~~~~~~~~~~~
   drivers/pci/pcie/aspm.c:1024:6: note: Left side of '||' is false
   drivers/pci/pcie/aspm.c:1024:23: note: Assuming 'link' is non-null
           if (aspm_disabled || !link)
                                ^~~~~
   drivers/pci/pcie/aspm.c:1024:2: note: Taking false branch
           if (aspm_disabled || !link)
           ^
   drivers/pci/pcie/aspm.c:1032:2: note: Calling 'pcie_update_aspm_capable'
           pcie_update_aspm_capable(root->link_state);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pci/pcie/aspm.c:960:2: note: 'link' declared without an initial value
           struct pcie_link_state *link;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pci/pcie/aspm.c:961:2: note: Assuming field 'self' is null
           BUG_ON(root->pdev->bus->parent->self);
           ^
   include/asm-generic/bug.h:65:36: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                      ^~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                             ^~~~
   drivers/pci/pcie/aspm.c:961:2: note: Taking false branch
           BUG_ON(root->pdev->bus->parent->self);
           ^
   include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                  ^
   drivers/pci/pcie/aspm.c:961:2: note: Loop condition is false.  Exiting loop
           BUG_ON(root->pdev->bus->parent->self);
           ^
   include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                             ^
   drivers/pci/pcie/aspm.c:962:2: note: Left side of '&&' is false
           list_for_each_entry(dev, &rootbus->devices, bus_list) {
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/pci/pcie/aspm.c:962:2: note: Taking false branch
           list_for_each_entry(dev, &rootbus->devices, bus_list) {
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to 
see all)
   include/linux/compiler_types.h:322:2: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:302:3: note: expanded from macro 
'__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/pci/pcie/aspm.c:962:2: note: Loop condition is false.  Exiting loop
           list_for_each_entry(dev, &rootbus->devices, bus_list) {
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to 
see all)
   include/linux/compiler_types.h:322:2: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:300:2: note: expanded from macro 
'__compiletime_assert'
           do {                                                            \
           ^
   drivers/pci/pcie/aspm.c:962:2: note: Loop condition is true.  Entering loop 
body
           list_for_each_entry(dev, &rootbus->devices, bus_list) {

vim +963 drivers/pci/pcie/aspm.c

7d715a6c1ae578 Shaohua Li          2008-02-25  954  
07d92760d2ee54 Kenji Kaneshige     2009-08-19  955  /* Recheck latencies and 
update aspm_capable for links under the root */
07d92760d2ee54 Kenji Kaneshige     2009-08-19  956  static void 
pcie_update_aspm_capable(struct pcie_link_state *root)
07d92760d2ee54 Kenji Kaneshige     2009-08-19  957  {
b73623c75c53fb Bolarinwa O. Saheed 2021-09-16  958      struct pci_dev *dev;
a2a494c1e15313 Bolarinwa O. Saheed 2021-09-16  959      struct pci_bus *rootbus 
= root->pdev->bus;
07d92760d2ee54 Kenji Kaneshige     2009-08-19  960      struct pcie_link_state 
*link;
d98a968e12577a Bolarinwa O. Saheed 2021-09-16  961      
BUG_ON(root->pdev->bus->parent->self);
a2a494c1e15313 Bolarinwa O. Saheed 2021-09-16  962      
list_for_each_entry(dev, &rootbus->devices, bus_list) {
a2a494c1e15313 Bolarinwa O. Saheed 2021-09-16 @963              
dev->link_state->aspm_capable = link->aspm_support;
07d92760d2ee54 Kenji Kaneshige     2009-08-19  964      }
a2a494c1e15313 Bolarinwa O. Saheed 2021-09-16  965  
a2a494c1e15313 Bolarinwa O. Saheed 2021-09-16  966      
list_for_each_entry(dev, &rootbus->devices, bus_list) {
07d92760d2ee54 Kenji Kaneshige     2009-08-19  967              struct pci_dev 
*child;
a2a494c1e15313 Bolarinwa O. Saheed 2021-09-16  968              struct pci_bus 
*linkbus = dev->subordinate;
b73623c75c53fb Bolarinwa O. Saheed 2021-09-16  969  
07d92760d2ee54 Kenji Kaneshige     2009-08-19  970              
list_for_each_entry(child, &linkbus->devices, bus_list) {
62f87c0e31d646 Yijing Wang         2012-07-24  971                      if 
((pci_pcie_type(child) != PCI_EXP_TYPE_ENDPOINT) &&
62f87c0e31d646 Yijing Wang         2012-07-24  972                          
(pci_pcie_type(child) != PCI_EXP_TYPE_LEG_END))
07d92760d2ee54 Kenji Kaneshige     2009-08-19  973                              
continue;
07d92760d2ee54 Kenji Kaneshige     2009-08-19  974                      
pcie_aspm_check_latency(child);
07d92760d2ee54 Kenji Kaneshige     2009-08-19  975              }
07d92760d2ee54 Kenji Kaneshige     2009-08-19  976      }
07d92760d2ee54 Kenji Kaneshige     2009-08-19  977  }
07d92760d2ee54 Kenji Kaneshige     2009-08-19  978  

---
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