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