All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Roger Quadros <rogerq@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Roger Quadros <rogerq@kernel.org>
Subject: [rogerq:b4/am65-cpsw-xdp-fixes 2/4] drivers/net/ethernet/ti/am65-cpsw-nuss.c:1331:15: warning: variable 'skb' is uninitialized when used here
Date: Sun, 9 Feb 2025 00:37:57 +0800	[thread overview]
Message-ID: <202502090051.nrnZ1Q3T-lkp@intel.com> (raw)

tree:   https://github.com/rogerq/linux b4/am65-cpsw-xdp-fixes
head:   414121e93990e4e8425ecd9e834b2a99dfffa9d5
commit: a949c33d5bf38077bf26b4e66d9d9832c3e6668c [2/4] net: ethernet: ti: am65-cpsw: fix memleak in certain XDP cases
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20250209/202502090051.nrnZ1Q3T-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250209/202502090051.nrnZ1Q3T-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502090051.nrnZ1Q3T-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/net/ethernet/ti/am65-cpsw-nuss.c:761:9: warning: cast to smaller integer type 'enum am65_cpsw_tx_buf_type' from 'void *' [-Wvoid-pointer-to-enum-cast]
     761 |         return (enum am65_cpsw_tx_buf_type)k3_cppi_desc_pool_desc_info(tx_chn->desc_pool,
         |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     762 |                                                                        desc_idx);
         |                                                                        ~~~~~~~~~
>> drivers/net/ethernet/ti/am65-cpsw-nuss.c:1331:15: warning: variable 'skb' is uninitialized when used here [-Wuninitialized]
    1331 |                 skb_reserve(skb, headroom);
         |                             ^~~
   drivers/net/ethernet/ti/am65-cpsw-nuss.c:1278:21: note: initialize the variable 'skb' to silence this warning
    1278 |         struct sk_buff *skb;
         |                            ^
         |                             = NULL
   2 warnings generated.


vim +/skb +1331 drivers/net/ethernet/ti/am65-cpsw-nuss.c

93a76530316a3d Grygorii Strashko   2020-03-24  1262  
da70d184a8c330 Roger Quadros       2024-09-10  1263  static int am65_cpsw_nuss_rx_packets(struct am65_cpsw_rx_flow *flow,
da70d184a8c330 Roger Quadros       2024-09-10  1264  				     int cpu, int *xdp_state)
93a76530316a3d Grygorii Strashko   2020-03-24  1265  {
da70d184a8c330 Roger Quadros       2024-09-10  1266  	struct am65_cpsw_rx_chn *rx_chn = &flow->common->rx_chns;
93a76530316a3d Grygorii Strashko   2020-03-24  1267  	u32 buf_dma_len, pkt_len, port_id = 0, csum_info;
da70d184a8c330 Roger Quadros       2024-09-10  1268  	struct am65_cpsw_common *common = flow->common;
93a76530316a3d Grygorii Strashko   2020-03-24  1269  	struct am65_cpsw_ndev_priv *ndev_priv;
93a76530316a3d Grygorii Strashko   2020-03-24  1270  	struct cppi5_host_desc_t *desc_rx;
93a76530316a3d Grygorii Strashko   2020-03-24  1271  	struct device *dev = common->dev;
de794169cf1711 Roger Quadros       2024-11-01  1272  	struct am65_cpsw_swdata *swdata;
8acacc40f73375 Julien Panis        2024-04-12  1273  	struct page *page, *new_page;
93a76530316a3d Grygorii Strashko   2020-03-24  1274  	dma_addr_t desc_dma, buf_dma;
93a76530316a3d Grygorii Strashko   2020-03-24  1275  	struct am65_cpsw_port *port;
93a76530316a3d Grygorii Strashko   2020-03-24  1276  	struct net_device *ndev;
da70d184a8c330 Roger Quadros       2024-09-10  1277  	u32 flow_idx = flow->id;
8acacc40f73375 Julien Panis        2024-04-12  1278  	struct sk_buff *skb;
8acacc40f73375 Julien Panis        2024-04-12  1279  	struct xdp_buff	xdp;
de794169cf1711 Roger Quadros       2024-11-01  1280  	int headroom, ret;
8acacc40f73375 Julien Panis        2024-04-12  1281  	void *page_addr;
93a76530316a3d Grygorii Strashko   2020-03-24  1282  	u32 *psdata;
93a76530316a3d Grygorii Strashko   2020-03-24  1283  
5e24db550bd6f4 Roger Quadros       2024-08-29  1284  	*xdp_state = AM65_CPSW_XDP_PASS;
93a76530316a3d Grygorii Strashko   2020-03-24  1285  	ret = k3_udma_glue_pop_rx_chn(rx_chn->rx_chn, flow_idx, &desc_dma);
93a76530316a3d Grygorii Strashko   2020-03-24  1286  	if (ret) {
93a76530316a3d Grygorii Strashko   2020-03-24  1287  		if (ret != -ENODATA)
93a76530316a3d Grygorii Strashko   2020-03-24  1288  			dev_err(dev, "RX: pop chn fail %d\n", ret);
93a76530316a3d Grygorii Strashko   2020-03-24  1289  		return ret;
93a76530316a3d Grygorii Strashko   2020-03-24  1290  	}
93a76530316a3d Grygorii Strashko   2020-03-24  1291  
6a40e2890e6e1d Grygorii Strashko   2020-10-30  1292  	if (cppi5_desc_is_tdcm(desc_dma)) {
93a76530316a3d Grygorii Strashko   2020-03-24  1293  		dev_dbg(dev, "%s RX tdown flow: %u\n", __func__, flow_idx);
0ed577e7e8e508 Siddharth Vadapalli 2023-02-09  1294  		if (common->pdata.quirks & AM64_CPSW_QUIRK_DMA_RX_TDOWN_IRQ)
0ed577e7e8e508 Siddharth Vadapalli 2023-02-09  1295  			complete(&common->tdown_complete);
93a76530316a3d Grygorii Strashko   2020-03-24  1296  		return 0;
93a76530316a3d Grygorii Strashko   2020-03-24  1297  	}
93a76530316a3d Grygorii Strashko   2020-03-24  1298  
93a76530316a3d Grygorii Strashko   2020-03-24  1299  	desc_rx = k3_cppi_desc_pool_dma2virt(rx_chn->desc_pool, desc_dma);
93a76530316a3d Grygorii Strashko   2020-03-24  1300  	dev_dbg(dev, "%s flow_idx: %u desc %pad\n",
93a76530316a3d Grygorii Strashko   2020-03-24  1301  		__func__, flow_idx, &desc_dma);
93a76530316a3d Grygorii Strashko   2020-03-24  1302  
93a76530316a3d Grygorii Strashko   2020-03-24  1303  	swdata = cppi5_hdesc_get_swdata(desc_rx);
de794169cf1711 Roger Quadros       2024-11-01  1304  	page = swdata->page;
de794169cf1711 Roger Quadros       2024-11-01  1305  	page_addr = page_address(page);
93a76530316a3d Grygorii Strashko   2020-03-24  1306  	cppi5_hdesc_get_obuf(desc_rx, &buf_dma, &buf_dma_len);
39fd0547ee6666 Peter Ujfalusi      2021-01-15  1307  	k3_udma_glue_rx_cppi5_to_dma_addr(rx_chn->rx_chn, &buf_dma);
93a76530316a3d Grygorii Strashko   2020-03-24  1308  	pkt_len = cppi5_hdesc_get_pktlen(desc_rx);
93a76530316a3d Grygorii Strashko   2020-03-24  1309  	cppi5_desc_get_tags_ids(&desc_rx->hdr, &port_id, NULL);
93a76530316a3d Grygorii Strashko   2020-03-24  1310  	dev_dbg(dev, "%s rx port_id:%d\n", __func__, port_id);
93a76530316a3d Grygorii Strashko   2020-03-24  1311  	port = am65_common_get_port(common, port_id);
93a76530316a3d Grygorii Strashko   2020-03-24  1312  	ndev = port->ndev;
93a76530316a3d Grygorii Strashko   2020-03-24  1313  	psdata = cppi5_hdesc_get_psdata(desc_rx);
93a76530316a3d Grygorii Strashko   2020-03-24  1314  	csum_info = psdata[2];
93a76530316a3d Grygorii Strashko   2020-03-24  1315  	dev_dbg(dev, "%s rx csum_info:%#x\n", __func__, csum_info);
93a76530316a3d Grygorii Strashko   2020-03-24  1316  
ed569ed9b30a74 Peter Ujfalusi      2021-01-15  1317  	dma_unmap_single(rx_chn->dma_dev, buf_dma, buf_dma_len, DMA_FROM_DEVICE);
93a76530316a3d Grygorii Strashko   2020-03-24  1318  	k3_cppi_desc_pool_free(rx_chn->desc_pool, desc_rx);
93a76530316a3d Grygorii Strashko   2020-03-24  1319  
8acacc40f73375 Julien Panis        2024-04-12  1320  	if (port->xdp_prog) {
da70d184a8c330 Roger Quadros       2024-09-10  1321  		xdp_init_buff(&xdp, PAGE_SIZE, &port->xdp_rxq[flow->id]);
5e24db550bd6f4 Roger Quadros       2024-08-29  1322  		xdp_prepare_buff(&xdp, page_addr, AM65_CPSW_HEADROOM,
8acacc40f73375 Julien Panis        2024-04-12  1323  				 pkt_len, false);
de794169cf1711 Roger Quadros       2024-11-01  1324  		*xdp_state = am65_cpsw_run_xdp(flow, port, &xdp,
8acacc40f73375 Julien Panis        2024-04-12  1325  					       cpu, &pkt_len);
5e24db550bd6f4 Roger Quadros       2024-08-29  1326  		if (*xdp_state != AM65_CPSW_XDP_PASS)
5e24db550bd6f4 Roger Quadros       2024-08-29  1327  			goto allocate;
8acacc40f73375 Julien Panis        2024-04-12  1328  
8acacc40f73375 Julien Panis        2024-04-12  1329  		/* Compute additional headroom to be reserved */
8acacc40f73375 Julien Panis        2024-04-12  1330  		headroom = (xdp.data - xdp.data_hard_start) - skb_headroom(skb);
8acacc40f73375 Julien Panis        2024-04-12 @1331  		skb_reserve(skb, headroom);
8acacc40f73375 Julien Panis        2024-04-12  1332  	}
8acacc40f73375 Julien Panis        2024-04-12  1333  
a949c33d5bf380 Roger Quadros       2025-02-05  1334  	skb = am65_cpsw_build_skb(page_addr, ndev,
a949c33d5bf380 Roger Quadros       2025-02-05  1335  				  AM65_CPSW_MAX_PACKET_SIZE);
a949c33d5bf380 Roger Quadros       2025-02-05  1336  	if (unlikely(!skb)) {
a949c33d5bf380 Roger Quadros       2025-02-05  1337  		new_page = page;
a949c33d5bf380 Roger Quadros       2025-02-05  1338  		goto requeue;
a949c33d5bf380 Roger Quadros       2025-02-05  1339  	}
a949c33d5bf380 Roger Quadros       2025-02-05  1340  
86e8b070b25e3c Vignesh Raghavendra 2021-02-11  1341  	ndev_priv = netdev_priv(ndev);
86e8b070b25e3c Vignesh Raghavendra 2021-02-11  1342  	am65_cpsw_nuss_set_offload_fwd_mark(skb, ndev_priv->offload_fwd_mark);
93a76530316a3d Grygorii Strashko   2020-03-24  1343  	skb_put(skb, pkt_len);
c03a6fd398269e Chintan Vankar      2024-04-19  1344  	if (port->rx_ts_enabled)
c03a6fd398269e Chintan Vankar      2024-04-19  1345  		am65_cpts_rx_timestamp(common->cpts, skb);
8acacc40f73375 Julien Panis        2024-04-12  1346  	skb_mark_for_recycle(skb);
93a76530316a3d Grygorii Strashko   2020-03-24  1347  	skb->protocol = eth_type_trans(skb, ndev);
93a76530316a3d Grygorii Strashko   2020-03-24  1348  	am65_cpsw_nuss_rx_csum(skb, csum_info);
da70d184a8c330 Roger Quadros       2024-09-10  1349  	napi_gro_receive(&flow->napi_rx, skb);
93a76530316a3d Grygorii Strashko   2020-03-24  1350  
4a7b2ba94a59d1 Simon Horman        2024-10-10  1351  	dev_sw_netstats_rx_add(ndev, pkt_len);
8acacc40f73375 Julien Panis        2024-04-12  1352  
5e24db550bd6f4 Roger Quadros       2024-08-29  1353  allocate:
da70d184a8c330 Roger Quadros       2024-09-10  1354  	new_page = page_pool_dev_alloc_pages(flow->page_pool);
5e24db550bd6f4 Roger Quadros       2024-08-29  1355  	if (unlikely(!new_page)) {
5e24db550bd6f4 Roger Quadros       2024-08-29  1356  		dev_err(dev, "page alloc failed\n");
8acacc40f73375 Julien Panis        2024-04-12  1357  		return -ENOMEM;
5e24db550bd6f4 Roger Quadros       2024-08-29  1358  	}
5e24db550bd6f4 Roger Quadros       2024-08-29  1359  
93a76530316a3d Grygorii Strashko   2020-03-24  1360  	if (netif_dormant(ndev)) {
de794169cf1711 Roger Quadros       2024-11-01  1361  		am65_cpsw_put_page(flow, new_page, true);
93a76530316a3d Grygorii Strashko   2020-03-24  1362  		ndev->stats.rx_dropped++;
93a76530316a3d Grygorii Strashko   2020-03-24  1363  		return 0;
93a76530316a3d Grygorii Strashko   2020-03-24  1364  	}
93a76530316a3d Grygorii Strashko   2020-03-24  1365  
8acacc40f73375 Julien Panis        2024-04-12  1366  requeue:
da70d184a8c330 Roger Quadros       2024-09-10  1367  	ret = am65_cpsw_nuss_rx_push(common, new_page, flow_idx);
93a76530316a3d Grygorii Strashko   2020-03-24  1368  	if (WARN_ON(ret < 0)) {
de794169cf1711 Roger Quadros       2024-11-01  1369  		am65_cpsw_put_page(flow, new_page, true);
93a76530316a3d Grygorii Strashko   2020-03-24  1370  		ndev->stats.rx_errors++;
93a76530316a3d Grygorii Strashko   2020-03-24  1371  		ndev->stats.rx_dropped++;
93a76530316a3d Grygorii Strashko   2020-03-24  1372  	}
93a76530316a3d Grygorii Strashko   2020-03-24  1373  
93a76530316a3d Grygorii Strashko   2020-03-24  1374  	return ret;
93a76530316a3d Grygorii Strashko   2020-03-24  1375  }
93a76530316a3d Grygorii Strashko   2020-03-24  1376  

:::::: The code at line 1331 was first introduced by commit
:::::: 8acacc40f7337527ff84cd901ed2ef0a2b95b2b6 net: ethernet: ti: am65-cpsw: Add minimal XDP support

:::::: TO: Julien Panis <jpanis@baylibre.com>
:::::: CC: David S. Miller <davem@davemloft.net>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2025-02-08 16:38 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202502090051.nrnZ1Q3T-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=rogerq@kernel.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.