All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/net/ethernet/mediatek/mtk_eth_soc.c:2519 mtk_tx_alloc() error: uninitialized symbol 'txd'.
@ 2024-10-30 11:14 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2024-10-30 11:14 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Frank Wunderlich <frank-w@public-files.de>
CC: Jacob Keller <jacob.e.keller@intel.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   c1e939a21eb111a6d6067b38e8e04b8809b64c4e
commit: c57e558194430d10d5e5f4acd8a8655b68dade13 net: ethernet: mtk_eth_soc: handle dma buffer size soc specific
date:   5 months ago
:::::: branch date: 9 hours ago
:::::: commit date: 5 months ago
config: hexagon-randconfig-r071-20241030 (https://download.01.org/0day-ci/archive/20241030/202410301948.jPOJVSLh-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 639a7ac648f1e50ccd2556e17d401c04f9cce625)

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202410301948.jPOJVSLh-lkp@intel.com/

smatch warnings:
drivers/net/ethernet/mediatek/mtk_eth_soc.c:2519 mtk_tx_alloc() error: uninitialized symbol 'txd'.

vim +/txd +2519 drivers/net/ethernet/mediatek/mtk_eth_soc.c

656e705243fd0c John Crispin     2016-03-08  2453  
656e705243fd0c John Crispin     2016-03-08  2454  static int mtk_tx_alloc(struct mtk_eth *eth)
656e705243fd0c John Crispin     2016-03-08  2455  {
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2456  	const struct mtk_soc_data *soc = eth->soc;
656e705243fd0c John Crispin     2016-03-08  2457  	struct mtk_tx_ring *ring = &eth->tx_ring;
ecb51fa37ee22f Lorenzo Bianconi 2024-05-08  2458  	int i, sz = soc->tx.desc_size;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2459  	struct mtk_tx_dma_v2 *txd;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2460  	int ring_size;
f63959c7eec315 Felix Fietkau    2022-11-16  2461  	u32 ofs, val;
656e705243fd0c John Crispin     2016-03-08  2462  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2463  	if (MTK_HAS_CAPS(soc->caps, MTK_QDMA))
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2464  		ring_size = MTK_QDMA_RING_SIZE;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2465  	else
c57e558194430d Frank Wunderlich 2024-06-03  2466  		ring_size = soc->tx.dma_size;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2467  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2468  	ring->buf = kcalloc(ring_size, sizeof(*ring->buf),
656e705243fd0c John Crispin     2016-03-08  2469  			       GFP_KERNEL);
656e705243fd0c John Crispin     2016-03-08  2470  	if (!ring->buf)
656e705243fd0c John Crispin     2016-03-08  2471  		goto no_tx_mem;
656e705243fd0c John Crispin     2016-03-08  2472  
ebb1e4f9cf38da Daniel Golle     2023-08-22  2473  	if (MTK_HAS_CAPS(soc->caps, MTK_SRAM)) {
c57e558194430d Frank Wunderlich 2024-06-03  2474  		ring->dma = eth->sram_base + soc->tx.fq_dma_size * sz;
c57e558194430d Frank Wunderlich 2024-06-03  2475  		ring->phys = eth->phy_scratch_ring + soc->tx.fq_dma_size * (dma_addr_t)sz;
ebb1e4f9cf38da Daniel Golle     2023-08-22  2476  	} else {
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2477  		ring->dma = dma_alloc_coherent(eth->dma_dev, ring_size * sz,
62dfb4cc444649 Lorenzo Bianconi 2022-05-20  2478  					       &ring->phys, GFP_KERNEL);
ebb1e4f9cf38da Daniel Golle     2023-08-22  2479  	}
ebb1e4f9cf38da Daniel Golle     2023-08-22  2480  
656e705243fd0c John Crispin     2016-03-08  2481  	if (!ring->dma)
656e705243fd0c John Crispin     2016-03-08  2482  		goto no_tx_mem;
656e705243fd0c John Crispin     2016-03-08  2483  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2484  	for (i = 0; i < ring_size; i++) {
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2485  		int next = (i + 1) % ring_size;
656e705243fd0c John Crispin     2016-03-08  2486  		u32 next_ptr = ring->phys + next * sz;
656e705243fd0c John Crispin     2016-03-08  2487  
7173eca8eeb7d5 Lorenzo Bianconi 2022-05-20  2488  		txd = ring->dma + i * sz;
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2489  		txd->txd2 = next_ptr;
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2490  		txd->txd3 = TX_DMA_LS0 | TX_DMA_OWNER_CPU;
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2491  		txd->txd4 = 0;
a008e2a84e6b2b Lorenzo Bianconi 2023-07-25  2492  		if (mtk_is_netsys_v2_or_greater(eth)) {
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2493  			txd->txd5 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2494  			txd->txd6 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2495  			txd->txd7 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2496  			txd->txd8 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2497  		}
656e705243fd0c John Crispin     2016-03-08  2498  	}
656e705243fd0c John Crispin     2016-03-08  2499  
296c9120752bab Stefan Roese     2019-08-16  2500  	/* On MT7688 (PDMA only) this driver uses the ring->dma structs
296c9120752bab Stefan Roese     2019-08-16  2501  	 * only as the framework. The real HW descriptors are the PDMA
296c9120752bab Stefan Roese     2019-08-16  2502  	 * descriptors in ring->dma_pdma.
296c9120752bab Stefan Roese     2019-08-16  2503  	 */
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2504  	if (!MTK_HAS_CAPS(soc->caps, MTK_QDMA)) {
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2505  		ring->dma_pdma = dma_alloc_coherent(eth->dma_dev, ring_size * sz,
62dfb4cc444649 Lorenzo Bianconi 2022-05-20  2506  						    &ring->phys_pdma, GFP_KERNEL);
296c9120752bab Stefan Roese     2019-08-16  2507  		if (!ring->dma_pdma)
296c9120752bab Stefan Roese     2019-08-16  2508  			goto no_tx_mem;
296c9120752bab Stefan Roese     2019-08-16  2509  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2510  		for (i = 0; i < ring_size; i++) {
296c9120752bab Stefan Roese     2019-08-16  2511  			ring->dma_pdma[i].txd2 = TX_DMA_DESP2_DEF;
296c9120752bab Stefan Roese     2019-08-16  2512  			ring->dma_pdma[i].txd4 = 0;
296c9120752bab Stefan Roese     2019-08-16  2513  		}
296c9120752bab Stefan Roese     2019-08-16  2514  	}
296c9120752bab Stefan Roese     2019-08-16  2515  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2516  	ring->dma_size = ring_size;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2517  	atomic_set(&ring->free_count, ring_size - 2);
7173eca8eeb7d5 Lorenzo Bianconi 2022-05-20  2518  	ring->next_free = ring->dma;
0e05744beda4ae Lorenzo Bianconi 2022-05-20 @2519  	ring->last_free = (void *)txd;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2520  	ring->last_free_ptr = (u32)(ring->phys + ((ring_size - 1) * sz));
04698cccb1de54 John Crispin     2016-06-10  2521  	ring->thresh = MAX_SKB_FRAGS;
656e705243fd0c John Crispin     2016-03-08  2522  
656e705243fd0c John Crispin     2016-03-08  2523  	/* make sure that all changes to the dma ring are flushed before we
656e705243fd0c John Crispin     2016-03-08  2524  	 * continue
656e705243fd0c John Crispin     2016-03-08  2525  	 */
656e705243fd0c John Crispin     2016-03-08  2526  	wmb();
656e705243fd0c John Crispin     2016-03-08  2527  
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2528  	if (MTK_HAS_CAPS(soc->caps, MTK_QDMA)) {
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2529  		mtk_w32(eth, ring->phys, soc->reg_map->qdma.ctx_ptr);
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2530  		mtk_w32(eth, ring->phys, soc->reg_map->qdma.dtx_ptr);
656e705243fd0c John Crispin     2016-03-08  2531  		mtk_w32(eth,
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2532  			ring->phys + ((ring_size - 1) * sz),
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2533  			soc->reg_map->qdma.crx_ptr);
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2534  		mtk_w32(eth, ring->last_free_ptr, soc->reg_map->qdma.drx_ptr);
f63959c7eec315 Felix Fietkau    2022-11-16  2535  
f63959c7eec315 Felix Fietkau    2022-11-16  2536  		for (i = 0, ofs = 0; i < MTK_QDMA_NUM_QUEUES; i++) {
f63959c7eec315 Felix Fietkau    2022-11-16  2537  			val = (QDMA_RES_THRES << 8) | QDMA_RES_THRES;
f63959c7eec315 Felix Fietkau    2022-11-16  2538  			mtk_w32(eth, val, soc->reg_map->qdma.qtx_cfg + ofs);
f63959c7eec315 Felix Fietkau    2022-11-16  2539  
f63959c7eec315 Felix Fietkau    2022-11-16  2540  			val = MTK_QTX_SCH_MIN_RATE_EN |
f63959c7eec315 Felix Fietkau    2022-11-16  2541  			      /* minimum: 10 Mbps */
f63959c7eec315 Felix Fietkau    2022-11-16  2542  			      FIELD_PREP(MTK_QTX_SCH_MIN_RATE_MAN, 1) |
f63959c7eec315 Felix Fietkau    2022-11-16  2543  			      FIELD_PREP(MTK_QTX_SCH_MIN_RATE_EXP, 4) |
f63959c7eec315 Felix Fietkau    2022-11-16  2544  			      MTK_QTX_SCH_LEAKY_BUCKET_SIZE;
a008e2a84e6b2b Lorenzo Bianconi 2023-07-25  2545  			if (mtk_is_netsys_v1(eth))
f63959c7eec315 Felix Fietkau    2022-11-16  2546  				val |= MTK_QTX_SCH_LEAKY_BUCKET_EN;
f63959c7eec315 Felix Fietkau    2022-11-16  2547  			mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs);
f63959c7eec315 Felix Fietkau    2022-11-16  2548  			ofs += MTK_QTX_OFFSET;
f63959c7eec315 Felix Fietkau    2022-11-16  2549  		}
f63959c7eec315 Felix Fietkau    2022-11-16  2550  		val = MTK_QDMA_TX_SCH_MAX_WFQ | (MTK_QDMA_TX_SCH_MAX_WFQ << 16);
f63959c7eec315 Felix Fietkau    2022-11-16  2551  		mtk_w32(eth, val, soc->reg_map->qdma.tx_sch_rate);
a008e2a84e6b2b Lorenzo Bianconi 2023-07-25  2552  		if (mtk_is_netsys_v2_or_greater(eth))
f63959c7eec315 Felix Fietkau    2022-11-16  2553  			mtk_w32(eth, val, soc->reg_map->qdma.tx_sch_rate + 4);
296c9120752bab Stefan Roese     2019-08-16  2554  	} else {
296c9120752bab Stefan Roese     2019-08-16  2555  		mtk_w32(eth, ring->phys_pdma, MT7628_TX_BASE_PTR0);
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2556  		mtk_w32(eth, ring_size, MT7628_TX_MAX_CNT0);
296c9120752bab Stefan Roese     2019-08-16  2557  		mtk_w32(eth, 0, MT7628_TX_CTX_IDX0);
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2558  		mtk_w32(eth, MT7628_PST_DTX_IDX0, soc->reg_map->pdma.rst_idx);
296c9120752bab Stefan Roese     2019-08-16  2559  	}
656e705243fd0c John Crispin     2016-03-08  2560  
656e705243fd0c John Crispin     2016-03-08  2561  	return 0;
656e705243fd0c John Crispin     2016-03-08  2562  
656e705243fd0c John Crispin     2016-03-08  2563  no_tx_mem:
656e705243fd0c John Crispin     2016-03-08  2564  	return -ENOMEM;
656e705243fd0c John Crispin     2016-03-08  2565  }
656e705243fd0c John Crispin     2016-03-08  2566  

:::::: The code at line 2519 was first introduced by commit
:::::: 0e05744beda4ae2d65100ed217e4bd50130b4078 net: ethernet: mtk_eth_soc: rely on txd_size in mtk_tx_alloc/mtk_tx_clean

:::::: TO: Lorenzo Bianconi <lorenzo@kernel.org>
:::::: CC: David S. Miller <davem@davemloft.net>

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

^ permalink raw reply	[flat|nested] 3+ messages in thread
* drivers/net/ethernet/mediatek/mtk_eth_soc.c:2519 mtk_tx_alloc() error: uninitialized symbol 'txd'.
@ 2024-12-26  9:12 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2024-12-26  9:12 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Frank Wunderlich <frank-w@public-files.de>
CC: Jacob Keller <jacob.e.keller@intel.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   9b2ffa6148b1e4468d08f7e0e7e371c43cac9ffe
commit: c57e558194430d10d5e5f4acd8a8655b68dade13 net: ethernet: mtk_eth_soc: handle dma buffer size soc specific
date:   7 months ago
:::::: branch date: 2 days ago
:::::: commit date: 7 months ago
config: arm64-randconfig-r072-20241225 (https://download.01.org/0day-ci/archive/20241226/202412261743.unBO9pAU-lkp@intel.com/config)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202412261743.unBO9pAU-lkp@intel.com/

smatch warnings:
drivers/net/ethernet/mediatek/mtk_eth_soc.c:2519 mtk_tx_alloc() error: uninitialized symbol 'txd'.

vim +/txd +2519 drivers/net/ethernet/mediatek/mtk_eth_soc.c

656e705243fd0c John Crispin     2016-03-08  2453  
656e705243fd0c John Crispin     2016-03-08  2454  static int mtk_tx_alloc(struct mtk_eth *eth)
656e705243fd0c John Crispin     2016-03-08  2455  {
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2456  	const struct mtk_soc_data *soc = eth->soc;
656e705243fd0c John Crispin     2016-03-08  2457  	struct mtk_tx_ring *ring = &eth->tx_ring;
ecb51fa37ee22f Lorenzo Bianconi 2024-05-08  2458  	int i, sz = soc->tx.desc_size;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2459  	struct mtk_tx_dma_v2 *txd;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2460  	int ring_size;
f63959c7eec315 Felix Fietkau    2022-11-16  2461  	u32 ofs, val;
656e705243fd0c John Crispin     2016-03-08  2462  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2463  	if (MTK_HAS_CAPS(soc->caps, MTK_QDMA))
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2464  		ring_size = MTK_QDMA_RING_SIZE;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2465  	else
c57e558194430d Frank Wunderlich 2024-06-03  2466  		ring_size = soc->tx.dma_size;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2467  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2468  	ring->buf = kcalloc(ring_size, sizeof(*ring->buf),
656e705243fd0c John Crispin     2016-03-08  2469  			       GFP_KERNEL);
656e705243fd0c John Crispin     2016-03-08  2470  	if (!ring->buf)
656e705243fd0c John Crispin     2016-03-08  2471  		goto no_tx_mem;
656e705243fd0c John Crispin     2016-03-08  2472  
ebb1e4f9cf38da Daniel Golle     2023-08-22  2473  	if (MTK_HAS_CAPS(soc->caps, MTK_SRAM)) {
c57e558194430d Frank Wunderlich 2024-06-03  2474  		ring->dma = eth->sram_base + soc->tx.fq_dma_size * sz;
c57e558194430d Frank Wunderlich 2024-06-03  2475  		ring->phys = eth->phy_scratch_ring + soc->tx.fq_dma_size * (dma_addr_t)sz;
ebb1e4f9cf38da Daniel Golle     2023-08-22  2476  	} else {
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2477  		ring->dma = dma_alloc_coherent(eth->dma_dev, ring_size * sz,
62dfb4cc444649 Lorenzo Bianconi 2022-05-20  2478  					       &ring->phys, GFP_KERNEL);
ebb1e4f9cf38da Daniel Golle     2023-08-22  2479  	}
ebb1e4f9cf38da Daniel Golle     2023-08-22  2480  
656e705243fd0c John Crispin     2016-03-08  2481  	if (!ring->dma)
656e705243fd0c John Crispin     2016-03-08  2482  		goto no_tx_mem;
656e705243fd0c John Crispin     2016-03-08  2483  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2484  	for (i = 0; i < ring_size; i++) {
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2485  		int next = (i + 1) % ring_size;
656e705243fd0c John Crispin     2016-03-08  2486  		u32 next_ptr = ring->phys + next * sz;
656e705243fd0c John Crispin     2016-03-08  2487  
7173eca8eeb7d5 Lorenzo Bianconi 2022-05-20  2488  		txd = ring->dma + i * sz;
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2489  		txd->txd2 = next_ptr;
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2490  		txd->txd3 = TX_DMA_LS0 | TX_DMA_OWNER_CPU;
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2491  		txd->txd4 = 0;
a008e2a84e6b2b Lorenzo Bianconi 2023-07-25  2492  		if (mtk_is_netsys_v2_or_greater(eth)) {
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2493  			txd->txd5 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2494  			txd->txd6 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2495  			txd->txd7 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2496  			txd->txd8 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2497  		}
656e705243fd0c John Crispin     2016-03-08  2498  	}
656e705243fd0c John Crispin     2016-03-08  2499  
296c9120752bab Stefan Roese     2019-08-16  2500  	/* On MT7688 (PDMA only) this driver uses the ring->dma structs
296c9120752bab Stefan Roese     2019-08-16  2501  	 * only as the framework. The real HW descriptors are the PDMA
296c9120752bab Stefan Roese     2019-08-16  2502  	 * descriptors in ring->dma_pdma.
296c9120752bab Stefan Roese     2019-08-16  2503  	 */
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2504  	if (!MTK_HAS_CAPS(soc->caps, MTK_QDMA)) {
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2505  		ring->dma_pdma = dma_alloc_coherent(eth->dma_dev, ring_size * sz,
62dfb4cc444649 Lorenzo Bianconi 2022-05-20  2506  						    &ring->phys_pdma, GFP_KERNEL);
296c9120752bab Stefan Roese     2019-08-16  2507  		if (!ring->dma_pdma)
296c9120752bab Stefan Roese     2019-08-16  2508  			goto no_tx_mem;
296c9120752bab Stefan Roese     2019-08-16  2509  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2510  		for (i = 0; i < ring_size; i++) {
296c9120752bab Stefan Roese     2019-08-16  2511  			ring->dma_pdma[i].txd2 = TX_DMA_DESP2_DEF;
296c9120752bab Stefan Roese     2019-08-16  2512  			ring->dma_pdma[i].txd4 = 0;
296c9120752bab Stefan Roese     2019-08-16  2513  		}
296c9120752bab Stefan Roese     2019-08-16  2514  	}
296c9120752bab Stefan Roese     2019-08-16  2515  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2516  	ring->dma_size = ring_size;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2517  	atomic_set(&ring->free_count, ring_size - 2);
7173eca8eeb7d5 Lorenzo Bianconi 2022-05-20  2518  	ring->next_free = ring->dma;
0e05744beda4ae Lorenzo Bianconi 2022-05-20 @2519  	ring->last_free = (void *)txd;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2520  	ring->last_free_ptr = (u32)(ring->phys + ((ring_size - 1) * sz));
04698cccb1de54 John Crispin     2016-06-10  2521  	ring->thresh = MAX_SKB_FRAGS;
656e705243fd0c John Crispin     2016-03-08  2522  
656e705243fd0c John Crispin     2016-03-08  2523  	/* make sure that all changes to the dma ring are flushed before we
656e705243fd0c John Crispin     2016-03-08  2524  	 * continue
656e705243fd0c John Crispin     2016-03-08  2525  	 */
656e705243fd0c John Crispin     2016-03-08  2526  	wmb();
656e705243fd0c John Crispin     2016-03-08  2527  
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2528  	if (MTK_HAS_CAPS(soc->caps, MTK_QDMA)) {
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2529  		mtk_w32(eth, ring->phys, soc->reg_map->qdma.ctx_ptr);
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2530  		mtk_w32(eth, ring->phys, soc->reg_map->qdma.dtx_ptr);
656e705243fd0c John Crispin     2016-03-08  2531  		mtk_w32(eth,
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2532  			ring->phys + ((ring_size - 1) * sz),
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2533  			soc->reg_map->qdma.crx_ptr);
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2534  		mtk_w32(eth, ring->last_free_ptr, soc->reg_map->qdma.drx_ptr);
f63959c7eec315 Felix Fietkau    2022-11-16  2535  
f63959c7eec315 Felix Fietkau    2022-11-16  2536  		for (i = 0, ofs = 0; i < MTK_QDMA_NUM_QUEUES; i++) {
f63959c7eec315 Felix Fietkau    2022-11-16  2537  			val = (QDMA_RES_THRES << 8) | QDMA_RES_THRES;
f63959c7eec315 Felix Fietkau    2022-11-16  2538  			mtk_w32(eth, val, soc->reg_map->qdma.qtx_cfg + ofs);
f63959c7eec315 Felix Fietkau    2022-11-16  2539  
f63959c7eec315 Felix Fietkau    2022-11-16  2540  			val = MTK_QTX_SCH_MIN_RATE_EN |
f63959c7eec315 Felix Fietkau    2022-11-16  2541  			      /* minimum: 10 Mbps */
f63959c7eec315 Felix Fietkau    2022-11-16  2542  			      FIELD_PREP(MTK_QTX_SCH_MIN_RATE_MAN, 1) |
f63959c7eec315 Felix Fietkau    2022-11-16  2543  			      FIELD_PREP(MTK_QTX_SCH_MIN_RATE_EXP, 4) |
f63959c7eec315 Felix Fietkau    2022-11-16  2544  			      MTK_QTX_SCH_LEAKY_BUCKET_SIZE;
a008e2a84e6b2b Lorenzo Bianconi 2023-07-25  2545  			if (mtk_is_netsys_v1(eth))
f63959c7eec315 Felix Fietkau    2022-11-16  2546  				val |= MTK_QTX_SCH_LEAKY_BUCKET_EN;
f63959c7eec315 Felix Fietkau    2022-11-16  2547  			mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs);
f63959c7eec315 Felix Fietkau    2022-11-16  2548  			ofs += MTK_QTX_OFFSET;
f63959c7eec315 Felix Fietkau    2022-11-16  2549  		}
f63959c7eec315 Felix Fietkau    2022-11-16  2550  		val = MTK_QDMA_TX_SCH_MAX_WFQ | (MTK_QDMA_TX_SCH_MAX_WFQ << 16);
f63959c7eec315 Felix Fietkau    2022-11-16  2551  		mtk_w32(eth, val, soc->reg_map->qdma.tx_sch_rate);
a008e2a84e6b2b Lorenzo Bianconi 2023-07-25  2552  		if (mtk_is_netsys_v2_or_greater(eth))
f63959c7eec315 Felix Fietkau    2022-11-16  2553  			mtk_w32(eth, val, soc->reg_map->qdma.tx_sch_rate + 4);
296c9120752bab Stefan Roese     2019-08-16  2554  	} else {
296c9120752bab Stefan Roese     2019-08-16  2555  		mtk_w32(eth, ring->phys_pdma, MT7628_TX_BASE_PTR0);
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2556  		mtk_w32(eth, ring_size, MT7628_TX_MAX_CNT0);
296c9120752bab Stefan Roese     2019-08-16  2557  		mtk_w32(eth, 0, MT7628_TX_CTX_IDX0);
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2558  		mtk_w32(eth, MT7628_PST_DTX_IDX0, soc->reg_map->pdma.rst_idx);
296c9120752bab Stefan Roese     2019-08-16  2559  	}
656e705243fd0c John Crispin     2016-03-08  2560  
656e705243fd0c John Crispin     2016-03-08  2561  	return 0;
656e705243fd0c John Crispin     2016-03-08  2562  
656e705243fd0c John Crispin     2016-03-08  2563  no_tx_mem:
656e705243fd0c John Crispin     2016-03-08  2564  	return -ENOMEM;
656e705243fd0c John Crispin     2016-03-08  2565  }
656e705243fd0c John Crispin     2016-03-08  2566  

:::::: The code at line 2519 was first introduced by commit
:::::: 0e05744beda4ae2d65100ed217e4bd50130b4078 net: ethernet: mtk_eth_soc: rely on txd_size in mtk_tx_alloc/mtk_tx_clean

:::::: TO: Lorenzo Bianconi <lorenzo@kernel.org>
:::::: CC: David S. Miller <davem@davemloft.net>

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

^ permalink raw reply	[flat|nested] 3+ messages in thread
* drivers/net/ethernet/mediatek/mtk_eth_soc.c:2519 mtk_tx_alloc() error: uninitialized symbol 'txd'.
@ 2024-10-08  4:04 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2024-10-08  4:04 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Frank Wunderlich <frank-w@public-files.de>
CC: Jacob Keller <jacob.e.keller@intel.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   87d6aab2389e5ce0197d8257d5f8ee965a67c4cd
commit: c57e558194430d10d5e5f4acd8a8655b68dade13 net: ethernet: mtk_eth_soc: handle dma buffer size soc specific
date:   4 months ago
:::::: branch date: 9 hours ago
:::::: commit date: 4 months ago
config: csky-randconfig-r072-20241008 (https://download.01.org/0day-ci/archive/20241008/202410081101.PlhAGGxk-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 14.1.0

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202410081101.PlhAGGxk-lkp@intel.com/

smatch warnings:
drivers/net/ethernet/mediatek/mtk_eth_soc.c:2519 mtk_tx_alloc() error: uninitialized symbol 'txd'.

vim +/txd +2519 drivers/net/ethernet/mediatek/mtk_eth_soc.c

656e705243fd0c John Crispin     2016-03-08  2453  
656e705243fd0c John Crispin     2016-03-08  2454  static int mtk_tx_alloc(struct mtk_eth *eth)
656e705243fd0c John Crispin     2016-03-08  2455  {
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2456  	const struct mtk_soc_data *soc = eth->soc;
656e705243fd0c John Crispin     2016-03-08  2457  	struct mtk_tx_ring *ring = &eth->tx_ring;
ecb51fa37ee22f Lorenzo Bianconi 2024-05-08  2458  	int i, sz = soc->tx.desc_size;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2459  	struct mtk_tx_dma_v2 *txd;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2460  	int ring_size;
f63959c7eec315 Felix Fietkau    2022-11-16  2461  	u32 ofs, val;
656e705243fd0c John Crispin     2016-03-08  2462  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2463  	if (MTK_HAS_CAPS(soc->caps, MTK_QDMA))
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2464  		ring_size = MTK_QDMA_RING_SIZE;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2465  	else
c57e558194430d Frank Wunderlich 2024-06-03  2466  		ring_size = soc->tx.dma_size;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2467  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2468  	ring->buf = kcalloc(ring_size, sizeof(*ring->buf),
656e705243fd0c John Crispin     2016-03-08  2469  			       GFP_KERNEL);
656e705243fd0c John Crispin     2016-03-08  2470  	if (!ring->buf)
656e705243fd0c John Crispin     2016-03-08  2471  		goto no_tx_mem;
656e705243fd0c John Crispin     2016-03-08  2472  
ebb1e4f9cf38da Daniel Golle     2023-08-22  2473  	if (MTK_HAS_CAPS(soc->caps, MTK_SRAM)) {
c57e558194430d Frank Wunderlich 2024-06-03  2474  		ring->dma = eth->sram_base + soc->tx.fq_dma_size * sz;
c57e558194430d Frank Wunderlich 2024-06-03  2475  		ring->phys = eth->phy_scratch_ring + soc->tx.fq_dma_size * (dma_addr_t)sz;
ebb1e4f9cf38da Daniel Golle     2023-08-22  2476  	} else {
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2477  		ring->dma = dma_alloc_coherent(eth->dma_dev, ring_size * sz,
62dfb4cc444649 Lorenzo Bianconi 2022-05-20  2478  					       &ring->phys, GFP_KERNEL);
ebb1e4f9cf38da Daniel Golle     2023-08-22  2479  	}
ebb1e4f9cf38da Daniel Golle     2023-08-22  2480  
656e705243fd0c John Crispin     2016-03-08  2481  	if (!ring->dma)
656e705243fd0c John Crispin     2016-03-08  2482  		goto no_tx_mem;
656e705243fd0c John Crispin     2016-03-08  2483  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2484  	for (i = 0; i < ring_size; i++) {
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2485  		int next = (i + 1) % ring_size;
656e705243fd0c John Crispin     2016-03-08  2486  		u32 next_ptr = ring->phys + next * sz;
656e705243fd0c John Crispin     2016-03-08  2487  
7173eca8eeb7d5 Lorenzo Bianconi 2022-05-20  2488  		txd = ring->dma + i * sz;
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2489  		txd->txd2 = next_ptr;
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2490  		txd->txd3 = TX_DMA_LS0 | TX_DMA_OWNER_CPU;
0e05744beda4ae Lorenzo Bianconi 2022-05-20  2491  		txd->txd4 = 0;
a008e2a84e6b2b Lorenzo Bianconi 2023-07-25  2492  		if (mtk_is_netsys_v2_or_greater(eth)) {
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2493  			txd->txd5 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2494  			txd->txd6 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2495  			txd->txd7 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2496  			txd->txd8 = 0;
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2497  		}
656e705243fd0c John Crispin     2016-03-08  2498  	}
656e705243fd0c John Crispin     2016-03-08  2499  
296c9120752bab Stefan Roese     2019-08-16  2500  	/* On MT7688 (PDMA only) this driver uses the ring->dma structs
296c9120752bab Stefan Roese     2019-08-16  2501  	 * only as the framework. The real HW descriptors are the PDMA
296c9120752bab Stefan Roese     2019-08-16  2502  	 * descriptors in ring->dma_pdma.
296c9120752bab Stefan Roese     2019-08-16  2503  	 */
160d3a9b192985 Lorenzo Bianconi 2022-05-20  2504  	if (!MTK_HAS_CAPS(soc->caps, MTK_QDMA)) {
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2505  		ring->dma_pdma = dma_alloc_coherent(eth->dma_dev, ring_size * sz,
62dfb4cc444649 Lorenzo Bianconi 2022-05-20  2506  						    &ring->phys_pdma, GFP_KERNEL);
296c9120752bab Stefan Roese     2019-08-16  2507  		if (!ring->dma_pdma)
296c9120752bab Stefan Roese     2019-08-16  2508  			goto no_tx_mem;
296c9120752bab Stefan Roese     2019-08-16  2509  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2510  		for (i = 0; i < ring_size; i++) {
296c9120752bab Stefan Roese     2019-08-16  2511  			ring->dma_pdma[i].txd2 = TX_DMA_DESP2_DEF;
296c9120752bab Stefan Roese     2019-08-16  2512  			ring->dma_pdma[i].txd4 = 0;
296c9120752bab Stefan Roese     2019-08-16  2513  		}
296c9120752bab Stefan Roese     2019-08-16  2514  	}
296c9120752bab Stefan Roese     2019-08-16  2515  
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2516  	ring->dma_size = ring_size;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2517  	atomic_set(&ring->free_count, ring_size - 2);
7173eca8eeb7d5 Lorenzo Bianconi 2022-05-20  2518  	ring->next_free = ring->dma;
0e05744beda4ae Lorenzo Bianconi 2022-05-20 @2519  	ring->last_free = (void *)txd;
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2520  	ring->last_free_ptr = (u32)(ring->phys + ((ring_size - 1) * sz));
04698cccb1de54 John Crispin     2016-06-10  2521  	ring->thresh = MAX_SKB_FRAGS;
656e705243fd0c John Crispin     2016-03-08  2522  
656e705243fd0c John Crispin     2016-03-08  2523  	/* make sure that all changes to the dma ring are flushed before we
656e705243fd0c John Crispin     2016-03-08  2524  	 * continue
656e705243fd0c John Crispin     2016-03-08  2525  	 */
656e705243fd0c John Crispin     2016-03-08  2526  	wmb();
656e705243fd0c John Crispin     2016-03-08  2527  
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2528  	if (MTK_HAS_CAPS(soc->caps, MTK_QDMA)) {
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2529  		mtk_w32(eth, ring->phys, soc->reg_map->qdma.ctx_ptr);
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2530  		mtk_w32(eth, ring->phys, soc->reg_map->qdma.dtx_ptr);
656e705243fd0c John Crispin     2016-03-08  2531  		mtk_w32(eth,
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2532  			ring->phys + ((ring_size - 1) * sz),
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2533  			soc->reg_map->qdma.crx_ptr);
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2534  		mtk_w32(eth, ring->last_free_ptr, soc->reg_map->qdma.drx_ptr);
f63959c7eec315 Felix Fietkau    2022-11-16  2535  
f63959c7eec315 Felix Fietkau    2022-11-16  2536  		for (i = 0, ofs = 0; i < MTK_QDMA_NUM_QUEUES; i++) {
f63959c7eec315 Felix Fietkau    2022-11-16  2537  			val = (QDMA_RES_THRES << 8) | QDMA_RES_THRES;
f63959c7eec315 Felix Fietkau    2022-11-16  2538  			mtk_w32(eth, val, soc->reg_map->qdma.qtx_cfg + ofs);
f63959c7eec315 Felix Fietkau    2022-11-16  2539  
f63959c7eec315 Felix Fietkau    2022-11-16  2540  			val = MTK_QTX_SCH_MIN_RATE_EN |
f63959c7eec315 Felix Fietkau    2022-11-16  2541  			      /* minimum: 10 Mbps */
f63959c7eec315 Felix Fietkau    2022-11-16  2542  			      FIELD_PREP(MTK_QTX_SCH_MIN_RATE_MAN, 1) |
f63959c7eec315 Felix Fietkau    2022-11-16  2543  			      FIELD_PREP(MTK_QTX_SCH_MIN_RATE_EXP, 4) |
f63959c7eec315 Felix Fietkau    2022-11-16  2544  			      MTK_QTX_SCH_LEAKY_BUCKET_SIZE;
a008e2a84e6b2b Lorenzo Bianconi 2023-07-25  2545  			if (mtk_is_netsys_v1(eth))
f63959c7eec315 Felix Fietkau    2022-11-16  2546  				val |= MTK_QTX_SCH_LEAKY_BUCKET_EN;
f63959c7eec315 Felix Fietkau    2022-11-16  2547  			mtk_w32(eth, val, soc->reg_map->qdma.qtx_sch + ofs);
f63959c7eec315 Felix Fietkau    2022-11-16  2548  			ofs += MTK_QTX_OFFSET;
f63959c7eec315 Felix Fietkau    2022-11-16  2549  		}
f63959c7eec315 Felix Fietkau    2022-11-16  2550  		val = MTK_QDMA_TX_SCH_MAX_WFQ | (MTK_QDMA_TX_SCH_MAX_WFQ << 16);
f63959c7eec315 Felix Fietkau    2022-11-16  2551  		mtk_w32(eth, val, soc->reg_map->qdma.tx_sch_rate);
a008e2a84e6b2b Lorenzo Bianconi 2023-07-25  2552  		if (mtk_is_netsys_v2_or_greater(eth))
f63959c7eec315 Felix Fietkau    2022-11-16  2553  			mtk_w32(eth, val, soc->reg_map->qdma.tx_sch_rate + 4);
296c9120752bab Stefan Roese     2019-08-16  2554  	} else {
296c9120752bab Stefan Roese     2019-08-16  2555  		mtk_w32(eth, ring->phys_pdma, MT7628_TX_BASE_PTR0);
c30e0b9b88b3cf Felix Fietkau    2022-11-16  2556  		mtk_w32(eth, ring_size, MT7628_TX_MAX_CNT0);
296c9120752bab Stefan Roese     2019-08-16  2557  		mtk_w32(eth, 0, MT7628_TX_CTX_IDX0);
8cb42714cdc1fc Lorenzo Bianconi 2022-05-20  2558  		mtk_w32(eth, MT7628_PST_DTX_IDX0, soc->reg_map->pdma.rst_idx);
296c9120752bab Stefan Roese     2019-08-16  2559  	}
656e705243fd0c John Crispin     2016-03-08  2560  
656e705243fd0c John Crispin     2016-03-08  2561  	return 0;
656e705243fd0c John Crispin     2016-03-08  2562  
656e705243fd0c John Crispin     2016-03-08  2563  no_tx_mem:
656e705243fd0c John Crispin     2016-03-08  2564  	return -ENOMEM;
656e705243fd0c John Crispin     2016-03-08  2565  }
656e705243fd0c John Crispin     2016-03-08  2566  

:::::: The code at line 2519 was first introduced by commit
:::::: 0e05744beda4ae2d65100ed217e4bd50130b4078 net: ethernet: mtk_eth_soc: rely on txd_size in mtk_tx_alloc/mtk_tx_clean

:::::: TO: Lorenzo Bianconi <lorenzo@kernel.org>
:::::: CC: David S. Miller <davem@davemloft.net>

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

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

end of thread, other threads:[~2024-12-26  9:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-30 11:14 drivers/net/ethernet/mediatek/mtk_eth_soc.c:2519 mtk_tx_alloc() error: uninitialized symbol 'txd' kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2024-12-26  9:12 kernel test robot
2024-10-08  4:04 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.