All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: Re: [PATCH RFC v18 net-next] vmxnet3: Add XDP support.
Date: Thu, 23 Mar 2023 21:35:30 +0800	[thread overview]
Message-ID: <202303232106.UkMR3FEX-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230318214953.36834-1-u9012063@gmail.com>
References: <20230318214953.36834-1-u9012063@gmail.com>
TO: William Tu <u9012063@gmail.com>

Hi William,

[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/William-Tu/vmxnet3-Add-XDP-support/20230319-055034
patch link:    https://lore.kernel.org/r/20230318214953.36834-1-u9012063%40gmail.com
patch subject: [PATCH RFC v18 net-next] vmxnet3: Add XDP support.
:::::: branch date: 5 days ago
:::::: commit date: 5 days ago
config: s390-randconfig-m031-20230321 (https://download.01.org/0day-ci/archive/20230323/202303232106.UkMR3FEX-lkp@intel.com/config)
compiler: s390-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 <error27@gmail.com>
| Link: https://lore.kernel.org/r/202303232106.UkMR3FEX-lkp@intel.com/

smatch warnings:
drivers/net/vmxnet3/vmxnet3_xdp.c:362 vmxnet3_process_xdp_small() warn: variable dereferenced before check 'skb_xdp_pass' (see line 361)
drivers/net/vmxnet3/vmxnet3_xdp.c:406 vmxnet3_process_xdp() warn: variable dereferenced before check 'skb_xdp_pass' (see line 405)

vim +/skb_xdp_pass +362 drivers/net/vmxnet3/vmxnet3_xdp.c

089db7a8620943 William Tu 2023-03-18  324  
089db7a8620943 William Tu 2023-03-18  325  /* Handle packets from DataRing. */
089db7a8620943 William Tu 2023-03-18  326  int
089db7a8620943 William Tu 2023-03-18  327  vmxnet3_process_xdp_small(struct vmxnet3_adapter *adapter,
089db7a8620943 William Tu 2023-03-18  328  			  struct vmxnet3_rx_queue *rq,
089db7a8620943 William Tu 2023-03-18  329  			  void *data, int len,
089db7a8620943 William Tu 2023-03-18  330  			  struct sk_buff **skb_xdp_pass)
089db7a8620943 William Tu 2023-03-18  331  {
089db7a8620943 William Tu 2023-03-18  332  	struct bpf_prog *xdp_prog;
089db7a8620943 William Tu 2023-03-18  333  	struct xdp_buff xdp;
089db7a8620943 William Tu 2023-03-18  334  	struct page *page;
089db7a8620943 William Tu 2023-03-18  335  	int act;
089db7a8620943 William Tu 2023-03-18  336  
089db7a8620943 William Tu 2023-03-18  337  	page = page_pool_alloc_pages(rq->page_pool, GFP_ATOMIC);
089db7a8620943 William Tu 2023-03-18  338  	if (unlikely(!page)) {
089db7a8620943 William Tu 2023-03-18  339  		rq->stats.rx_buf_alloc_failure++;
089db7a8620943 William Tu 2023-03-18  340  		return XDP_DROP;
089db7a8620943 William Tu 2023-03-18  341  	}
089db7a8620943 William Tu 2023-03-18  342  
089db7a8620943 William Tu 2023-03-18  343  	xdp_init_buff(&xdp, PAGE_SIZE, &rq->xdp_rxq);
089db7a8620943 William Tu 2023-03-18  344  	xdp_prepare_buff(&xdp, page_address(page), rq->page_pool->p.offset,
089db7a8620943 William Tu 2023-03-18  345  			 len, false);
089db7a8620943 William Tu 2023-03-18  346  	xdp_buff_clear_frags_flag(&xdp);
089db7a8620943 William Tu 2023-03-18  347  
089db7a8620943 William Tu 2023-03-18  348  	/* Must copy the data because it's at dataring. */
089db7a8620943 William Tu 2023-03-18  349  	memcpy(xdp.data, data, len);
089db7a8620943 William Tu 2023-03-18  350  
089db7a8620943 William Tu 2023-03-18  351  	rcu_read_lock();
089db7a8620943 William Tu 2023-03-18  352  	xdp_prog = rcu_dereference(rq->adapter->xdp_bpf_prog);
089db7a8620943 William Tu 2023-03-18  353  	if (!xdp_prog) {
089db7a8620943 William Tu 2023-03-18  354  		act = XDP_PASS;
089db7a8620943 William Tu 2023-03-18  355  		goto out_skb;
089db7a8620943 William Tu 2023-03-18  356  	}
089db7a8620943 William Tu 2023-03-18  357  	act = vmxnet3_run_xdp(rq, &xdp, xdp_prog);
089db7a8620943 William Tu 2023-03-18  358  
089db7a8620943 William Tu 2023-03-18  359  	if (act == XDP_PASS) {
089db7a8620943 William Tu 2023-03-18  360  out_skb:
089db7a8620943 William Tu 2023-03-18 @361  		*skb_xdp_pass = vmxnet3_build_skb(rq, page, &xdp);
089db7a8620943 William Tu 2023-03-18 @362  		if (!skb_xdp_pass)
089db7a8620943 William Tu 2023-03-18  363  			return XDP_DROP;
089db7a8620943 William Tu 2023-03-18  364  	}
089db7a8620943 William Tu 2023-03-18  365  
089db7a8620943 William Tu 2023-03-18  366  	/* No need to refill. */
089db7a8620943 William Tu 2023-03-18  367  	return act;
089db7a8620943 William Tu 2023-03-18  368  }
089db7a8620943 William Tu 2023-03-18  369  
089db7a8620943 William Tu 2023-03-18  370  int
089db7a8620943 William Tu 2023-03-18  371  vmxnet3_process_xdp(struct vmxnet3_adapter *adapter,
089db7a8620943 William Tu 2023-03-18  372  		    struct vmxnet3_rx_queue *rq,
089db7a8620943 William Tu 2023-03-18  373  		    struct Vmxnet3_RxCompDesc *rcd,
089db7a8620943 William Tu 2023-03-18  374  		    struct vmxnet3_rx_buf_info *rbi,
089db7a8620943 William Tu 2023-03-18  375  		    struct Vmxnet3_RxDesc *rxd,
089db7a8620943 William Tu 2023-03-18  376  		    struct sk_buff **skb_xdp_pass)
089db7a8620943 William Tu 2023-03-18  377  {
089db7a8620943 William Tu 2023-03-18  378  	struct bpf_prog *xdp_prog;
089db7a8620943 William Tu 2023-03-18  379  	dma_addr_t new_dma_addr;
089db7a8620943 William Tu 2023-03-18  380  	struct xdp_buff xdp;
089db7a8620943 William Tu 2023-03-18  381  	struct page *page;
089db7a8620943 William Tu 2023-03-18  382  	void *new_data;
089db7a8620943 William Tu 2023-03-18  383  	int act;
089db7a8620943 William Tu 2023-03-18  384  
089db7a8620943 William Tu 2023-03-18  385  	page = rbi->page;
089db7a8620943 William Tu 2023-03-18  386  	dma_sync_single_for_cpu(&adapter->pdev->dev,
089db7a8620943 William Tu 2023-03-18  387  				page_pool_get_dma_addr(page) +
089db7a8620943 William Tu 2023-03-18  388  				rq->page_pool->p.offset, rcd->len,
089db7a8620943 William Tu 2023-03-18  389  				page_pool_get_dma_dir(rq->page_pool));
089db7a8620943 William Tu 2023-03-18  390  
089db7a8620943 William Tu 2023-03-18  391  	xdp_init_buff(&xdp, rbi->len, &rq->xdp_rxq);
089db7a8620943 William Tu 2023-03-18  392  	xdp_prepare_buff(&xdp, page_address(page), rq->page_pool->p.offset,
089db7a8620943 William Tu 2023-03-18  393  			 rcd->len, false);
089db7a8620943 William Tu 2023-03-18  394  	xdp_buff_clear_frags_flag(&xdp);
089db7a8620943 William Tu 2023-03-18  395  
089db7a8620943 William Tu 2023-03-18  396  	xdp_prog = rcu_dereference(rq->adapter->xdp_bpf_prog);
089db7a8620943 William Tu 2023-03-18  397  	if (!xdp_prog) {
089db7a8620943 William Tu 2023-03-18  398  		act = XDP_PASS;
089db7a8620943 William Tu 2023-03-18  399  		goto out_skb;
089db7a8620943 William Tu 2023-03-18  400  	}
089db7a8620943 William Tu 2023-03-18  401  	act = vmxnet3_run_xdp(rq, &xdp, xdp_prog);
089db7a8620943 William Tu 2023-03-18  402  
089db7a8620943 William Tu 2023-03-18  403  	if (act == XDP_PASS) {
089db7a8620943 William Tu 2023-03-18  404  out_skb:
089db7a8620943 William Tu 2023-03-18 @405  		*skb_xdp_pass = vmxnet3_build_skb(rq, page, &xdp);
089db7a8620943 William Tu 2023-03-18 @406  		if (!skb_xdp_pass)

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

             reply	other threads:[~2023-03-23 13:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-23 13:35 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-03-18 21:49 [PATCH RFC v18 net-next] vmxnet3: Add XDP support William Tu
2023-03-19 17:20 ` Horatiu Vultur
2023-03-25 17:02   ` William Tu
2023-03-23 14:07 ` Dan Carpenter
2023-03-25 17:03   ` William Tu

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=202303232106.UkMR3FEX-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /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.