oe-kbuild-all.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH RFC v18 net-next] vmxnet3: Add XDP support.
       [not found] <20230318214953.36834-1-u9012063@gmail.com>
@ 2023-03-23 14:07 ` Dan Carpenter
  2023-03-25 17:03   ` William Tu
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2023-03-23 14:07 UTC (permalink / raw)
  To: oe-kbuild, William Tu; +Cc: lkp, oe-kbuild-all

Hi William,

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.
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  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)

This should be testing 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)
                                                            ^^^^^^^^^^^^^
Same.


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


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

* Re: [PATCH RFC v18 net-next] vmxnet3: Add XDP support.
  2023-03-23 14:07 ` [PATCH RFC v18 net-next] vmxnet3: Add XDP support Dan Carpenter
@ 2023-03-25 17:03   ` William Tu
  0 siblings, 0 replies; 2+ messages in thread
From: William Tu @ 2023-03-25 17:03 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: oe-kbuild, lkp, oe-kbuild-all

On Thu, Mar 23, 2023 at 7:07 AM Dan Carpenter <error27@gmail.com> wrote:
>
> Hi William,
>
> 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.
> 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  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)
>
> This should be testing 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)
>                                                             ^^^^^^^^^^^^^
> Same.
>
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests
>

Hi Dan,
Thanks for picking up this patch and testing it!
I will fix the two places and resend.
William

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

end of thread, other threads:[~2023-03-25 17:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20230318214953.36834-1-u9012063@gmail.com>
2023-03-23 14:07 ` [PATCH RFC v18 net-next] vmxnet3: Add XDP support Dan Carpenter
2023-03-25 17:03   ` William Tu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).