All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/net/ethernet/actions/owl-emac.c:210 owl_emac_ring_prepare_rx() error: potentially dereferencing uninitialized 'desc'.
Date: Tue, 18 Jan 2022 19:13:25 +0800	[thread overview]
Message-ID: <202201181515.OPFOFmFA-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 6193 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Cai Huoqing <caihuoqing@baidu.com>

Hi Cai,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   0c947b893d69231a9add855939da7c66237ab44f
commit: fbcf8a340150abd20bf44fc706362b0827157fe8 net: ethernet: actions: Add helper dependency on COMPILE_TEST
date:   5 months ago
:::::: branch date: 23 hours ago
:::::: commit date: 5 months ago
config: openrisc-randconfig-m031-20220117 (https://download.01.org/0day-ci/archive/20220118/202201181515.OPFOFmFA-lkp(a)intel.com/config)
compiler: or1k-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/net/ethernet/actions/owl-emac.c:210 owl_emac_ring_prepare_rx() error: potentially dereferencing uninitialized 'desc'.
drivers/net/ethernet/actions/owl-emac.c:233 owl_emac_ring_prepare_tx() error: potentially dereferencing uninitialized 'desc'.

vim +/desc +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  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  218  static void owl_emac_ring_prepare_tx(struct owl_emac_priv *priv)
de6e0b19823985 Cristian Ciocaltea 2021-03-22  219  {
de6e0b19823985 Cristian Ciocaltea 2021-03-22  220  	struct owl_emac_ring *ring = &priv->tx_ring;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  221  	struct owl_emac_ring_desc *desc;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  222  	int i;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  223  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  224  	for (i = 0; i < ring->size; i++) {
de6e0b19823985 Cristian Ciocaltea 2021-03-22  225  		desc = &ring->descs[i];
de6e0b19823985 Cristian Ciocaltea 2021-03-22  226  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  227  		desc->status = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  228  		desc->control = OWL_EMAC_BIT_TDES1_IC;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  229  		desc->buf_addr = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  230  		desc->reserved = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  231  	}
de6e0b19823985 Cristian Ciocaltea 2021-03-22  232  
de6e0b19823985 Cristian Ciocaltea 2021-03-22 @233  	desc->control |= OWL_EMAC_BIT_TDES1_TER;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  234  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  235  	memset(ring->skbs_dma, 0, sizeof(dma_addr_t) * ring->size);
de6e0b19823985 Cristian Ciocaltea 2021-03-22  236  
de6e0b19823985 Cristian Ciocaltea 2021-03-22  237  	ring->head = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  238  	ring->tail = 0;
de6e0b19823985 Cristian Ciocaltea 2021-03-22  239  }
de6e0b19823985 Cristian Ciocaltea 2021-03-22  240  

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

:::::: TO: Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
:::::: CC: David S. Miller <davem@davemloft.net>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2022-01-18 11:13 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-18 11:13 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-08-06 17:45 drivers/net/ethernet/actions/owl-emac.c:210 owl_emac_ring_prepare_rx() error: potentially dereferencing uninitialized 'desc' kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202201181515.OPFOFmFA-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.