:::::: 
:::::: Manual check reason: "low confidence static check first_new_problem: 
drivers/net/ethernet/mediatek/mtk_eth_soc.c:1404:3: warning: Value stored to 
'budget' is never read [clang-analyzer-deadcode.DeadStores]"
:::::: 

CC: l...@lists.linux.dev
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Lorenzo Bianconi <lore...@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   e0dccc3b76fb35bb257b4118367a883073d7390e
commit: a3c62a042237d1adeb0290dcb768e17edd6dcd25 net: mtk_eth: add COMPILE_TEST 
support
date:   7 months ago
:::::: branch date: 19 hours ago
:::::: commit date: 7 months ago
config: arm-randconfig-c002-20220721 
(https://download.01.org/0day-ci/archive/20220725/202207252207.1xeei9vo-...@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
72686d68c137551cce816416190a18d45b4d4e2a)
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=a3c62a042237d1adeb0290dcb768e17edd6dcd25
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout a3c62a042237d1adeb0290dcb768e17edd6dcd25
        # save the config file
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 
clang-analyzer 

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <l...@intel.com>

clang-analyzer warnings: (new ones prefixed by >>)
   fs/ceph/mds_client.c:4208:14: note: Calling 'ceph_mdsmap_get_state'
                   newstate = ceph_mdsmap_get_state(newmap, i);
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/ceph/mdsmap.h:53:2: note: Taking false branch
           BUG_ON(w < 0);
           ^
   include/asm-generic/bug.h:161:32: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                  ^
   include/linux/ceph/mdsmap.h:53:2: note: Loop condition is false.  Exiting 
loop
           BUG_ON(w < 0);
           ^
   include/asm-generic/bug.h:161:27: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                             ^
   include/linux/ceph/mdsmap.h:54:6: note: 'w' is < field 'possible_max_rank'
           if (w >= m->possible_max_rank)
               ^
   include/linux/ceph/mdsmap.h:54:2: note: Taking false branch
           if (w >= m->possible_max_rank)
           ^
   include/linux/ceph/mdsmap.h:56:9: note: Dereference of null pointer
           return m->m_info[w].state;
                  ^~~~~~~~~~~~~~~~~~
   1 warning generated.
   Suppressed 1 warnings (1 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.
   1 warning generated.
   Suppressed 1 warnings (1 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.
   1 warning generated.
   Suppressed 1 warnings (1 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.
   1 warning generated.
   Suppressed 1 warnings (1 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.
   drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c:1296:4: warning: Value stored 
to 'offs' is never read [clang-analyzer-deadcode.DeadStores]
                           offs += 
mvpp2_cls_hek_field_size(MVPP22_CLS_HEK_OPT_L4DIP);
                           ^       
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c:1296:4: note: Value stored to 
'offs' is never read
                           offs += 
mvpp2_cls_hek_field_size(MVPP22_CLS_HEK_OPT_L4DIP);
                           ^       
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 1 warnings (1 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.
   1 warning generated.
   Suppressed 1 warnings (1 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.
   drivers/net/ethernet/marvell/pxa168_eth.c:677:2: warning: Value stored to 
'val' is never read [clang-analyzer-deadcode.DeadStores]
           val &= ~SDMA_CMD_ERD;   /* abort dma command */
           ^      ~~~~~~~~~~~~~
   drivers/net/ethernet/marvell/pxa168_eth.c:677:2: note: Value stored to 'val' 
is never read
           val &= ~SDMA_CMD_ERD;   /* abort dma command */
           ^      ~~~~~~~~~~~~~
   Suppressed 1 warnings (1 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.
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:344:7: warning: Branch condition 
evaluates to a garbage value [clang-analyzer-core.uninitialized.Branch]
                   if (err)
                       ^~~
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:220:20: note: 'err' declared 
without an initial value
           int val, ge_mode, err;
                             ^~~
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:223:7: note: Assuming the 
condition is true
           if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) &&
                ^
   drivers/net/ethernet/mediatek/mtk_eth_soc.h:808:34: note: expanded from 
macro 'MTK_HAS_CAPS'
   #define MTK_HAS_CAPS(caps, _x)          (((caps) & (_x)) == (_x))
                                            ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:223:52: note: Left side of '&&' 
is false
           if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) &&
                                                             ^
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:322:6: note: Assuming field 
'interface' is equal to PHY_INTERFACE_MODE_SGMII
           if (state->interface == PHY_INTERFACE_MODE_SGMII ||
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:322:51: note: Left side of '||' 
is true
           if (state->interface == PHY_INTERFACE_MODE_SGMII ||
                                                            ^
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:334:10: note: Assuming the 
condition is true
                   sid = (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_SGMII)) ?
                          ^
   drivers/net/ethernet/mediatek/mtk_eth_soc.h:808:34: note: expanded from 
macro 'MTK_HAS_CAPS'
   #define MTK_HAS_CAPS(caps, _x)          (((caps) & (_x)) == (_x))
                                            ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:334:9: note: '?' condition is 
true
                   sid = (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_SGMII)) ?
                         ^
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:338:14: note: Field 'interface' 
is equal to PHY_INTERFACE_MODE_SGMII
                   if (state->interface != PHY_INTERFACE_MODE_SGMII)
                              ^
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:338:3: note: Taking false branch
                   if (state->interface != PHY_INTERFACE_MODE_SGMII)
                   ^
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:341:8: note: Taking false branch
                   else if (phylink_autoneg_inband(mode))
                        ^
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:344:7: note: Branch condition 
evaluates to a garbage value
                   if (err)
                       ^~~
>> drivers/net/ethernet/mediatek/mtk_eth_soc.c:1404:3: warning: Value stored to 
>> 'budget' is never read [clang-analyzer-deadcode.DeadStores]
                   budget = mtk_poll_tx_qdma(eth, budget, done, bytes);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1404:3: note: Value stored to 
'budget' is never read
                   budget = mtk_poll_tx_qdma(eth, budget, done, bytes);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1406:3: warning: Value stored to 
'budget' is never read [clang-analyzer-deadcode.DeadStores]
                   budget = mtk_poll_tx_pdma(eth, budget, done, bytes);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1406:3: note: Value stored to 
'budget' is never read
                   budget = mtk_poll_tx_pdma(eth, budget, done, bytes);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 2 warnings (1 in non-user code, 1 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.
   2 warnings generated.
   fs/namespace.c:2242:13: warning: Access to field 'd_inode' results in a 
dereference of a null pointer (loaded from variable 'dentry') 
[clang-analyzer-core.NullDereference]
           inode_lock(dentry->d_inode);
                      ^
   fs/namespace.c:3816:1: note: Calling '__do_sys_pivot_root'
   SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
   ^
   include/linux/syscalls.h:218:36: note: expanded from macro 'SYSCALL_DEFINE2'
   #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:228:2: note: expanded from macro 'SYSCALL_DEFINEx'
           __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:249:14: note: expanded from macro 
'__SYSCALL_DEFINEx'
                   long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   note: expanded from here
   fs/namespace.c:3824:2: note: Taking false branch
           if (!may_mount())
           ^
   fs/namespace.c:3829:6: note: Assuming 'error' is 0
           if (error)
               ^~~~~
   fs/namespace.c:3829:2: note: Taking false branch
           if (error)
           ^
   fs/namespace.c:3834:6: note: Assuming 'error' is 0
           if (error)
               ^~~~~
   fs/namespace.c:3834:2: note: Taking false branch
           if (error)
           ^
   fs/namespace.c:3838:6: note: 'error' is 0
           if (error)
               ^~~~~
   fs/namespace.c:3838:2: note: Taking false branch
           if (error)
           ^
   fs/namespace.c:3842:11: note: Calling 'lock_mount'
           old_mp = lock_mount(&old);
                    ^~~~~~~~~~~~~~~~
   fs/namespace.c:2243:6: note: Assuming the condition is true
           if (unlikely(cant_mount(dentry))) {
               ^
   include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                             ^~~~
   fs/namespace.c:2243:2: note: Taking false branch
           if (unlikely(cant_mount(dentry))) {
           ^
   fs/namespace.c:2249:14: note: 'mnt' is non-null
           if (likely(!mnt)) {
                       ^
   include/linux/compiler.h:77:40: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                                               ^
   fs/namespace.c:2249:2: note: Taking false branch
           if (likely(!mnt)) {
           ^
   fs/namespace.c:2262:2: note: Null pointer value stored to 'dentry'
           dentry = path->dentry = dget(mnt->mnt_root);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/namespace.c:2263:2: note: Control jumps to line 2242
           goto retry;
           ^
   fs/namespace.c:2242:13: note: Access to field 'd_inode' results in a 
dereference of a null pointer (loaded from variable 'dentry')
           inode_lock(dentry->d_inode);
                      ^~~~~~
   Suppressed 1 warnings (1 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.
   1 warning generated.
   Suppressed 1 warnings (1 with check filters).
   1 warning generated.
   Suppressed 1 warnings (1 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.
   drivers/net/ethernet/qualcomm/emac/emac-mac.c:1411:13: warning: Access to 
field 'skb' results in a dereference of a null pointer (loaded from variable 
'tpbuf') [clang-analyzer-core.NullDereference]
           tpbuf->skb = skb;
                      ^
   drivers/net/ethernet/qualcomm/emac/emac-mac.c:1444:2: note: Taking false 
branch
           if (emac_tso_csum(adpt, tx_q, skb, &tpd) != 0) {
           ^
   drivers/net/ethernet/qualcomm/emac/emac-mac.c:1449:6: note: Assuming field 
'vlan_present' is 0
           if (skb_vlan_tag_present(skb)) {
               ^
   include/linux/if_vlan.h:77:37: note: expanded from macro 
'skb_vlan_tag_present'
   #define skb_vlan_tag_present(__skb)     ((__skb)->vlan_present)

vim +/budget +1404 drivers/net/ethernet/mediatek/mtk_eth_soc.c

296c9120752bab Stefan Roese  2019-08-16  1391  
296c9120752bab Stefan Roese  2019-08-16  1392  static int mtk_poll_tx(struct 
mtk_eth *eth, int budget)
296c9120752bab Stefan Roese  2019-08-16  1393  {
296c9120752bab Stefan Roese  2019-08-16  1394   struct mtk_tx_ring *ring = 
&eth->tx_ring;
e9229ffd550b2d Felix Fietkau 2021-04-22  1395   struct dim_sample dim_sample = 
{};
296c9120752bab Stefan Roese  2019-08-16  1396   unsigned int done[MTK_MAX_DEVS];
296c9120752bab Stefan Roese  2019-08-16  1397   unsigned int 
bytes[MTK_MAX_DEVS];
296c9120752bab Stefan Roese  2019-08-16  1398   int total = 0, i;
296c9120752bab Stefan Roese  2019-08-16  1399  
296c9120752bab Stefan Roese  2019-08-16  1400   memset(done, 0, sizeof(done));
296c9120752bab Stefan Roese  2019-08-16  1401   memset(bytes, 0, sizeof(bytes));
296c9120752bab Stefan Roese  2019-08-16  1402  
296c9120752bab Stefan Roese  2019-08-16  1403   if 
(MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA))
296c9120752bab Stefan Roese  2019-08-16 @1404           budget = 
mtk_poll_tx_qdma(eth, budget, done, bytes);
296c9120752bab Stefan Roese  2019-08-16  1405   else
296c9120752bab Stefan Roese  2019-08-16  1406           budget = 
mtk_poll_tx_pdma(eth, budget, done, bytes);
296c9120752bab Stefan Roese  2019-08-16  1407  
656e705243fd0c John Crispin  2016-03-08  1408   for (i = 0; i < MTK_MAC_COUNT; 
i++) {
656e705243fd0c John Crispin  2016-03-08  1409           if (!eth->netdev[i] || 
!done[i])
656e705243fd0c John Crispin  2016-03-08  1410                   continue;
656e705243fd0c John Crispin  2016-03-08  1411           
netdev_completed_queue(eth->netdev[i], done[i], bytes[i]);
656e705243fd0c John Crispin  2016-03-08  1412           total += done[i];
e9229ffd550b2d Felix Fietkau 2021-04-22  1413           eth->tx_packets += 
done[i];
e9229ffd550b2d Felix Fietkau 2021-04-22  1414           eth->tx_bytes += 
bytes[i];
656e705243fd0c John Crispin  2016-03-08  1415   }
656e705243fd0c John Crispin  2016-03-08  1416  
e9229ffd550b2d Felix Fietkau 2021-04-22  1417   
dim_update_sample(eth->tx_events, eth->tx_packets, eth->tx_bytes,
e9229ffd550b2d Felix Fietkau 2021-04-22  1418                     &dim_sample);
e9229ffd550b2d Felix Fietkau 2021-04-22  1419   net_dim(&eth->tx_dim, 
dim_sample);
e9229ffd550b2d Felix Fietkau 2021-04-22  1420  
ad3cba989e8b1b John Crispin  2016-06-10  1421   if (mtk_queue_stopped(eth) &&
ad3cba989e8b1b John Crispin  2016-06-10  1422       
(atomic_read(&ring->free_count) > ring->thresh))
13c822f6d468ca John Crispin  2016-04-08  1423           mtk_wake_queue(eth);
656e705243fd0c John Crispin  2016-03-08  1424  
656e705243fd0c John Crispin  2016-03-08  1425   return total;
656e705243fd0c John Crispin  2016-03-08  1426  }
656e705243fd0c John Crispin  2016-03-08  1427  

:::::: The code at line 1404 was first introduced by commit
:::::: 296c9120752bab93151bd7220896dd302683a91c net: ethernet: mediatek: Add 
MT7628/88 SoC support

:::::: TO: Stefan Roese <s...@denx.de>
:::::: CC: David S. Miller <da...@davemloft.net>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to