CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Cai Huoqing <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   3498e7f2bb415e447354a3debef6738d9655768c
commit: fbcf8a340150abd20bf44fc706362b0827157fe8 net: ethernet: actions: Add 
helper dependency on COMPILE_TEST
date:   3 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 3 months ago
config: arm-randconfig-c002-20211001 
(https://download.01.org/0day-ci/archive/20211128/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
962e503cc8bc411f7523cc393acae8aae425b1c4)
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 arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fbcf8a340150abd20bf44fc706362b0827157fe8
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout fbcf8a340150abd20bf44fc706362b0827157fe8
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 
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 >>)
                                                 ^~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                      ^~~~
   drivers/net/ethernet/ethoc.c:1130:2: note: '?' condition is false
           if (num_bd < 4) {
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                 ^
   drivers/net/ethernet/ethoc.c:1130:6: note: 'num_bd' is >= 4
           if (num_bd < 4) {
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                                
        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   drivers/net/ethernet/ethoc.c:1130:2: note: '?' condition is false
           if (num_bd < 4) {
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
           ^
   drivers/net/ethernet/ethoc.c:1130:2: note: Taking false branch
           if (num_bd < 4) {
           ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   drivers/net/ethernet/ethoc.c:1136:17: note: '?' condition is false
           priv->num_tx = rounddown_pow_of_two(num_bd >> 1);
                          ^
   include/linux/log2.h:193:2: note: expanded from macro 'rounddown_pow_of_two'
           __builtin_constant_p(n) ? (             \
           ^
   drivers/net/ethernet/ethoc.c:1136:17: note: Calling '__rounddown_pow_of_two'
           priv->num_tx = rounddown_pow_of_two(num_bd >> 1);
                          ^
   include/linux/log2.h:195:2: note: expanded from macro 'rounddown_pow_of_two'
           __rounddown_pow_of_two(n)               \
           ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/log2.h:67:13: note: The result of the left shift is undefined 
due to shifting by '4294967295', which is greater or equal to the width of type 
'unsigned long'
           return 1UL << (fls_long(n) - 1);
                      ^  ~~~~~~~~~~~~~~~~~
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   8 warnings generated.
   fs/btrfs/tests/extent-buffer-tests.c:64:2: warning: Value stored to 'item' 
is never read [clang-analyzer-deadcode.DeadStores]
           item = btrfs_item_nr(0);
           ^      ~~~~~~~~~~~~~~~~
   fs/btrfs/tests/extent-buffer-tests.c:64:2: note: Value stored to 'item' is 
never read
           item = btrfs_item_nr(0);
           ^      ~~~~~~~~~~~~~~~~
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   10 warnings generated.
   drivers/net/can/ti_hecc.c:783:3: warning: Value stored to 'int_status' is 
never read [clang-analyzer-deadcode.DeadStores]
                   int_status = hecc_read(priv, HECC_CANGIF1);
                   ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/can/ti_hecc.c:783:3: note: Value stored to 'int_status' is never 
read
                   int_status = hecc_read(priv, HECC_CANGIF1);
                   ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/can/ti_hecc.c:786:3: warning: Value stored to 'int_status' is 
never read [clang-analyzer-deadcode.DeadStores]
                   int_status = hecc_read(priv, HECC_CANGIF0);
                   ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/can/ti_hecc.c:786:3: note: Value stored to 'int_status' is never 
read
                   int_status = hecc_read(priv, HECC_CANGIF0);
                   ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/can/ti_hecc.c:861:22: warning: Value stored to 'np' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device_node *np = pdev->dev.of_node;
                               ^~   ~~~~~~~~~~~~~~~~~
   drivers/net/can/ti_hecc.c:861:22: note: Value stored to 'np' during its 
initialization is never read
           struct device_node *np = pdev->dev.of_node;
                               ^~   ~~~~~~~~~~~~~~~~~
   Suppressed 7 warnings (7 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   9 warnings generated.
>> drivers/net/ethernet/actions/owl-emac.c:210:16: warning: Access to field 
>> 'control' results in a dereference of an undefined pointer value (loaded 
>> from variable 'desc') [clang-analyzer-core.NullDereference]
           desc->control |= OWL_EMAC_BIT_RDES1_RER;
                         ^
   drivers/net/ethernet/actions/owl-emac.c:1420:2: note: '?' condition is false
           if (ret)
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                 ^
   drivers/net/ethernet/actions/owl-emac.c:1420:6: note: 'ret' is 0
           if (ret)
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                                
        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   drivers/net/ethernet/actions/owl-emac.c:1420:2: note: '?' condition is false
           if (ret)
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
           ^
   drivers/net/ethernet/actions/owl-emac.c:1420:2: note: Taking false branch
           if (ret)
           ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   drivers/net/ethernet/actions/owl-emac.c:1423:2: note: Assuming the condition 
is false
           if (netif_running(netdev)) {
           ^
   include/linux/compiler.h:56:45: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                      ^~~~
   drivers/net/ethernet/actions/owl-emac.c:1423:2: note: '?' condition is false
           if (netif_running(netdev)) {
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                 ^
   drivers/net/ethernet/actions/owl-emac.c:1423:2: note: '?' condition is true
           if (netif_running(netdev)) {
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
           ^
   drivers/net/ethernet/actions/owl-emac.c:1423:2: note: Taking true branch
           if (netif_running(netdev)) {
           ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   drivers/net/ethernet/actions/owl-emac.c:1427:9: note: Calling 
'owl_emac_enable'
                   ret = owl_emac_enable(netdev, true);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/actions/owl-emac.c:1042:8: note: Calling 
'owl_emac_ring_prepare_rx'
           ret = owl_emac_ring_prepare_rx(priv);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/actions/owl-emac.c:184:2: note: 'desc' declared without 
an initial value
           struct owl_emac_ring_desc *desc;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/actions/owl-emac.c:189:14: note: Assuming 'i' is >= 
field 'size'
           for (i = 0; i < ring->size; i++) {
                       ^~~~~~~~~~~~~~
   drivers/net/ethernet/actions/owl-emac.c:189:2: note: Loop condition is 
false. Execution continues on line 210
           for (i = 0; i < ring->size; i++) {
           ^
   drivers/net/ethernet/actions/owl-emac.c:210:16: note: Access to field 
'control' results in a dereference of an undefined pointer value (loaded from 
variable 'desc')
           desc->control |= OWL_EMAC_BIT_RDES1_RER;
           ~~~~          ^
   drivers/net/ethernet/actions/owl-emac.c:233:16: warning: Access to field 
'control' results in a dereference of an undefined pointer value (loaded from 
variable 'desc') [clang-analyzer-core.NullDereference]
           desc->control |= OWL_EMAC_BIT_TDES1_TER;
                         ^
   drivers/net/ethernet/actions/owl-emac.c:1420:2: note: '?' condition is false
           if (ret)

vim +210 drivers/net/ethernet/actions/owl-emac.c

de6e0b19823985 Cristian Ciocaltea 2021-03-22  178  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  179  static int 
owl_emac_ring_prepare_rx(struct owl_emac_priv *priv)
de6e0b19823985 Cristian Ciocaltea 2021-03-22  180  {
de6e0b19823985 Cristian Ciocaltea 2021-03-22  181       struct owl_emac_ring 
*ring = &priv->rx_ring;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  182       struct device *dev = 
owl_emac_get_dev(priv);
de6e0b19823985 Cristian Ciocaltea 2021-03-22  183       struct net_device 
*netdev = priv->netdev;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  184       struct 
owl_emac_ring_desc *desc;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  185       struct sk_buff *skb;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  186       dma_addr_t dma_addr;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  187       int i;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  188  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  189       for (i = 0; i < 
ring->size; i++) {
de6e0b19823985 Cristian Ciocaltea 2021-03-22  190               skb = 
owl_emac_alloc_skb(netdev);
de6e0b19823985 Cristian Ciocaltea 2021-03-22  191               if (!skb)
de6e0b19823985 Cristian Ciocaltea 2021-03-22  192                       return 
-ENOMEM;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  193  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  194               dma_addr = 
owl_emac_dma_map_rx(priv, skb);
de6e0b19823985 Cristian Ciocaltea 2021-03-22  195               if 
(dma_mapping_error(dev, dma_addr)) {
de6e0b19823985 Cristian Ciocaltea 2021-03-22  196                       
dev_kfree_skb(skb);
de6e0b19823985 Cristian Ciocaltea 2021-03-22  197                       return 
-ENOMEM;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  198               }
de6e0b19823985 Cristian Ciocaltea 2021-03-22  199  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  200               desc = 
&ring->descs[i];
de6e0b19823985 Cristian Ciocaltea 2021-03-22  201               desc->status = 
OWL_EMAC_BIT_RDES0_OWN;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  202               desc->control = 
skb_tailroom(skb) & OWL_EMAC_MSK_RDES1_RBS1;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  203               desc->buf_addr 
= dma_addr;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  204               desc->reserved 
= 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  205  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  206               ring->skbs[i] = 
skb;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  207               
ring->skbs_dma[i] = dma_addr;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  208       }
de6e0b19823985 Cristian Ciocaltea 2021-03-22  209  
de6e0b19823985 Cristian Ciocaltea 2021-03-22 @210       desc->control |= 
OWL_EMAC_BIT_RDES1_RER;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  211  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  212       ring->head = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  213       ring->tail = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  214  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  215       return 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  216  }
de6e0b19823985 Cristian Ciocaltea 2021-03-22  217  

:::::: The code at line 210 was first introduced by commit
:::::: de6e0b198239857943db395377dc1d2ddd6c05df net: ethernet: actions: Add 
Actions Semi Owl Ethernet MAC driver

:::::: TO: Cristian Ciocaltea <[email protected]>
:::::: CC: David S. Miller <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to