All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/net/ethernet/actions/owl-emac.c:210 owl_emac_ring_prepare_rx() error: potentially dereferencing uninitialized 'desc'.
@ 2022-01-18 11:13 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-01-18 11:13 UTC (permalink / raw)
  To: kbuild

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* drivers/net/ethernet/actions/owl-emac.c:210 owl_emac_ring_prepare_rx() error: potentially dereferencing uninitialized 'desc'.
@ 2022-08-06 17:45 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-08-06 17:45 UTC (permalink / raw)
  To: kbuild

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

BCC: lkp(a)intel.com
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:   6614a3c3164a5df2b54abb0b3559f51041cf705b
commit: fbcf8a340150abd20bf44fc706362b0827157fe8 net: ethernet: actions: Add helper dependency on COMPILE_TEST
date:   12 months ago
:::::: branch date: 18 hours ago
:::::: commit date: 12 months ago
config: openrisc-randconfig-m031-20220801 (https://download.01.org/0day-ci/archive/20220807/202208070132.61ALGbPW-lkp(a)intel.com/config)
compiler: or1k-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
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
https://01.org/lkp

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-08-06 17:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-18 11:13 drivers/net/ethernet/actions/owl-emac.c:210 owl_emac_ring_prepare_rx() error: potentially dereferencing uninitialized 'desc' kernel test robot
2022-08-06 17:45 kernel test robot

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.