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