Building the Linux kernel with Clang and LLVM
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox