Thread (28 messages) 28 messages, 5 authors, 2022-10-07

Re: [PATCH 1/1] net: fec: add initial XDP support

From: kernel test robot <hidden>
Date: 2022-09-29 02:44:11
Also in: imx, lkml

Hi Shenwei,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]
[also build test WARNING on next-20220928]
[cannot apply to net/master linus/master v6.0-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Shenwei-Wang/net-fec-add-initial-XDP-support/20220928-232917
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git b9a5cbf8ba24e88071a97a51a09ef5cdf0d1f6a1
config: parisc-randconfig-m031-20220925
compiler: hppa64-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot [off-list ref]

New smatch warnings:
drivers/net/ethernet/freescale/fec_main.c:3285 fec_enet_alloc_rxq_buffers() warn: unsigned 'err' is never less than zero.

Old smatch warnings:
drivers/net/ethernet/freescale/fec_main.c:3658 fec_enet_select_queue() warn: potential spectre issue 'fec_enet_vlan_pri_to_queue' [r]

vim +/err +3285 drivers/net/ethernet/freescale/fec_main.c

  3269	
  3270	static int
  3271	fec_enet_alloc_rxq_buffers(struct net_device *ndev, unsigned int queue)
  3272	{
  3273		struct fec_enet_private *fep = netdev_priv(ndev);
  3274		unsigned int i, err;
  3275		struct bufdesc	*bdp;
  3276		struct fec_enet_priv_rx_q *rxq;
  3277	
  3278		dma_addr_t phys_addr;
  3279		struct page *page;
  3280	
  3281		rxq = fep->rx_queue[queue];
  3282		bdp = rxq->bd.base;
  3283	
  3284		err = fec_enet_create_page_pool(fep, rxq, rxq->bd.ring_size);
3285		if (err < 0) {
  3286			netdev_err(ndev, "%s failed queue %d (%d)\n", __func__, queue, err);
  3287			return err;
  3288		}
  3289	
  3290		for (i = 0; i < rxq->bd.ring_size; i++) {
  3291			page = page_pool_dev_alloc_pages(rxq->page_pool);
  3292			if (!page)
  3293				goto err_alloc;
  3294	
  3295			phys_addr = page_pool_get_dma_addr(page) + FEC_ENET_XDP_HEADROOM;
  3296			bdp->cbd_bufaddr = cpu_to_fec32(phys_addr);
  3297	
  3298			rxq->rx_skb_info[i].page = page;
  3299			rxq->rx_skb_info[i].offset = FEC_ENET_XDP_HEADROOM;
  3300			bdp->cbd_sc = cpu_to_fec16(BD_ENET_RX_EMPTY);
  3301	
  3302			if (fep->bufdesc_ex) {
  3303				struct bufdesc_ex *ebdp = (struct bufdesc_ex *)bdp;
  3304				ebdp->cbd_esc = cpu_to_fec32(BD_ENET_RX_INT);
  3305			}
  3306	
  3307			bdp = fec_enet_get_nextdesc(bdp, &rxq->bd);
  3308		}
  3309	
  3310		/* Set the last buffer to wrap. */
  3311		bdp = fec_enet_get_prevdesc(bdp, &rxq->bd);
  3312		bdp->cbd_sc |= cpu_to_fec16(BD_SC_WRAP);
  3313		return 0;
  3314	
  3315	 err_alloc:
  3316		fec_enet_free_buffers(ndev);
  3317		return -ENOMEM;
  3318	}
  3319	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help