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 v2 bpf] xsk: fix immature cq descriptor production
Date: Sun, 6 Jul 2025 15:03:38 +0800 [thread overview]
Message-ID: <202507061447.DwFSGum1-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250705135512.1963216-1-maciej.fijalkowski@intel.com>
References: <20250705135512.1963216-1-maciej.fijalkowski@intel.com>
TO: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
TO: bpf@vger.kernel.org
TO: ast@kernel.org
TO: daniel@iogearbox.net
TO: andrii@kernel.org
CC: netdev@vger.kernel.org
CC: magnus.karlsson@intel.com
CC: stfomichev@gmail.com
CC: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
CC: Eryk Kubanski <e.kubanski@partner.samsung.com>
Hi Maciej,
kernel test robot noticed the following build warnings:
[auto build test WARNING on bpf/master]
url: https://github.com/intel-lab-lkp/linux/commits/Maciej-Fijalkowski/xsk-fix-immature-cq-descriptor-production/20250705-215714
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git master
patch link: https://lore.kernel.org/r/20250705135512.1963216-1-maciej.fijalkowski%40intel.com
patch subject: [PATCH v2 bpf] xsk: fix immature cq descriptor production
:::::: branch date: 17 hours ago
:::::: commit date: 17 hours ago
config: x86_64-randconfig-r071-20250706 (https://download.01.org/0day-ci/archive/20250706/202507061447.DwFSGum1-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202507061447.DwFSGum1-lkp@intel.com/
smatch warnings:
net/xdp/xsk.c:819 xsk_build_skb() warn: passing zero to 'ERR_PTR'
vim +/ERR_PTR +819 net/xdp/xsk.c
9c8f21e6f8856a Xuan Zhuo 2021-02-18 688
9c8f21e6f8856a Xuan Zhuo 2021-02-18 689 static struct sk_buff *xsk_build_skb(struct xdp_sock *xs,
9c8f21e6f8856a Xuan Zhuo 2021-02-18 690 struct xdp_desc *desc)
9c8f21e6f8856a Xuan Zhuo 2021-02-18 691 {
48eb03dd26304c Stanislav Fomichev 2023-11-27 692 struct xsk_tx_metadata *meta = NULL;
9c8f21e6f8856a Xuan Zhuo 2021-02-18 693 struct net_device *dev = xs->dev;
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 694 struct xsk_addrs *addrs = NULL;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 695 struct sk_buff *skb = xs->skb;
48eb03dd26304c Stanislav Fomichev 2023-11-27 696 bool first_frag = false;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 697 int err;
9c8f21e6f8856a Xuan Zhuo 2021-02-18 698
9c8f21e6f8856a Xuan Zhuo 2021-02-18 699 if (dev->priv_flags & IFF_TX_SKB_NO_LINEAR) {
9c8f21e6f8856a Xuan Zhuo 2021-02-18 700 skb = xsk_build_skb_zerocopy(xs, desc);
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 701 if (IS_ERR(skb)) {
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 702 err = PTR_ERR(skb);
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 703 goto free_err;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 704 }
9c8f21e6f8856a Xuan Zhuo 2021-02-18 705 } else {
9c8f21e6f8856a Xuan Zhuo 2021-02-18 706 u32 hr, tr, len;
9c8f21e6f8856a Xuan Zhuo 2021-02-18 707 void *buffer;
9c8f21e6f8856a Xuan Zhuo 2021-02-18 708
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 709 buffer = xsk_buff_raw_get_data(xs->pool, desc->addr);
9c8f21e6f8856a Xuan Zhuo 2021-02-18 710 len = desc->len;
9c8f21e6f8856a Xuan Zhuo 2021-02-18 711
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 712 if (!skb) {
0c0d0f42ffa6ac Felix Maurer 2024-11-14 713 first_frag = true;
0c0d0f42ffa6ac Felix Maurer 2024-11-14 714
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 715 hr = max(NET_SKB_PAD, L1_CACHE_ALIGN(dev->needed_headroom));
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 716 tr = dev->needed_tailroom;
9c8f21e6f8856a Xuan Zhuo 2021-02-18 717 skb = sock_alloc_send_skb(&xs->sk, hr + len + tr, 1, &err);
9c8f21e6f8856a Xuan Zhuo 2021-02-18 718 if (unlikely(!skb))
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 719 goto free_err;
9c8f21e6f8856a Xuan Zhuo 2021-02-18 720
9c8f21e6f8856a Xuan Zhuo 2021-02-18 721 skb_reserve(skb, hr);
9c8f21e6f8856a Xuan Zhuo 2021-02-18 722 skb_put(skb, len);
9c8f21e6f8856a Xuan Zhuo 2021-02-18 723
9c8f21e6f8856a Xuan Zhuo 2021-02-18 724 err = skb_store_bits(skb, 0, buffer, len);
0c0d0f42ffa6ac Felix Maurer 2024-11-14 725 if (unlikely(err))
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 726 goto free_err;
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 727
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 728 addrs = kzalloc(sizeof(*addrs), GFP_KERNEL);
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 729 if (!addrs)
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 730 goto free_err;
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 731
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 732 xsk_set_destructor_arg(skb, addrs);
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 733
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 734 } else {
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 735 int nr_frags = skb_shinfo(skb)->nr_frags;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 736 struct page *page;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 737 u8 *vaddr;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 738
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 739 if (unlikely(nr_frags == (MAX_SKB_FRAGS - 1) && xp_mb_desc(desc))) {
9d0a67b9d42c63 Tirthendu Sarkar 2023-08-23 740 err = -EOVERFLOW;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 741 goto free_err;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 742 }
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 743
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 744 page = alloc_page(xs->sk.sk_allocation);
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 745 if (unlikely(!page)) {
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 746 err = -EAGAIN;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 747 goto free_err;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 748 }
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 749
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 750 vaddr = kmap_local_page(page);
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 751 memcpy(vaddr, buffer, len);
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 752 kunmap_local(vaddr);
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 753
2127c604383666 Sebastian Andrzej Siewior 2024-02-02 754 skb_add_rx_frag(skb, nr_frags, page, 0, len, PAGE_SIZE);
2127c604383666 Sebastian Andrzej Siewior 2024-02-02 755 refcount_add(PAGE_SIZE, &xs->sk.sk_wmem_alloc);
9c8f21e6f8856a Xuan Zhuo 2021-02-18 756 }
48eb03dd26304c Stanislav Fomichev 2023-11-27 757
48eb03dd26304c Stanislav Fomichev 2023-11-27 758 if (first_frag && desc->options & XDP_TX_METADATA) {
48eb03dd26304c Stanislav Fomichev 2023-11-27 759 if (unlikely(xs->pool->tx_metadata_len == 0)) {
48eb03dd26304c Stanislav Fomichev 2023-11-27 760 err = -EINVAL;
48eb03dd26304c Stanislav Fomichev 2023-11-27 761 goto free_err;
48eb03dd26304c Stanislav Fomichev 2023-11-27 762 }
48eb03dd26304c Stanislav Fomichev 2023-11-27 763
48eb03dd26304c Stanislav Fomichev 2023-11-27 764 meta = buffer - xs->pool->tx_metadata_len;
ce59f9686e0eca Stanislav Fomichev 2023-11-27 765 if (unlikely(!xsk_buff_valid_tx_metadata(meta))) {
ce59f9686e0eca Stanislav Fomichev 2023-11-27 766 err = -EINVAL;
ce59f9686e0eca Stanislav Fomichev 2023-11-27 767 goto free_err;
ce59f9686e0eca Stanislav Fomichev 2023-11-27 768 }
48eb03dd26304c Stanislav Fomichev 2023-11-27 769
48eb03dd26304c Stanislav Fomichev 2023-11-27 770 if (meta->flags & XDP_TXMD_FLAGS_CHECKSUM) {
48eb03dd26304c Stanislav Fomichev 2023-11-27 771 if (unlikely(meta->request.csum_start +
48eb03dd26304c Stanislav Fomichev 2023-11-27 772 meta->request.csum_offset +
48eb03dd26304c Stanislav Fomichev 2023-11-27 773 sizeof(__sum16) > len)) {
48eb03dd26304c Stanislav Fomichev 2023-11-27 774 err = -EINVAL;
48eb03dd26304c Stanislav Fomichev 2023-11-27 775 goto free_err;
48eb03dd26304c Stanislav Fomichev 2023-11-27 776 }
48eb03dd26304c Stanislav Fomichev 2023-11-27 777
48eb03dd26304c Stanislav Fomichev 2023-11-27 778 skb->csum_start = hr + meta->request.csum_start;
48eb03dd26304c Stanislav Fomichev 2023-11-27 779 skb->csum_offset = meta->request.csum_offset;
48eb03dd26304c Stanislav Fomichev 2023-11-27 780 skb->ip_summed = CHECKSUM_PARTIAL;
11614723af26e7 Stanislav Fomichev 2023-11-27 781
11614723af26e7 Stanislav Fomichev 2023-11-27 782 if (unlikely(xs->pool->tx_sw_csum)) {
11614723af26e7 Stanislav Fomichev 2023-11-27 783 err = skb_checksum_help(skb);
11614723af26e7 Stanislav Fomichev 2023-11-27 784 if (err)
11614723af26e7 Stanislav Fomichev 2023-11-27 785 goto free_err;
11614723af26e7 Stanislav Fomichev 2023-11-27 786 }
48eb03dd26304c Stanislav Fomichev 2023-11-27 787 }
ca4419f15abd19 Song Yoong Siang 2025-02-16 788
ca4419f15abd19 Song Yoong Siang 2025-02-16 789 if (meta->flags & XDP_TXMD_FLAGS_LAUNCH_TIME)
ca4419f15abd19 Song Yoong Siang 2025-02-16 790 skb->skb_mstamp_ns = meta->request.launch_time;
48eb03dd26304c Stanislav Fomichev 2023-11-27 791 }
9c8f21e6f8856a Xuan Zhuo 2021-02-18 792 }
9c8f21e6f8856a Xuan Zhuo 2021-02-18 793
9c8f21e6f8856a Xuan Zhuo 2021-02-18 794 skb->dev = dev;
10bbf1652c1cca Eric Dumazet 2023-09-21 795 skb->priority = READ_ONCE(xs->sk.sk_priority);
3c5b4d69c358a9 Eric Dumazet 2023-07-28 796 skb->mark = READ_ONCE(xs->sk.sk_mark);
9c8f21e6f8856a Xuan Zhuo 2021-02-18 797 skb->destructor = xsk_destruct_skb;
48eb03dd26304c Stanislav Fomichev 2023-11-27 798 xsk_tx_metadata_to_compl(meta, &skb_shinfo(skb)->xsk_meta);
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 799
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 800 addrs = (struct xsk_addrs *)skb_shinfo(skb)->destructor_arg;
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 801 addrs->addrs[addrs->num_descs++] = desc->addr;
9c8f21e6f8856a Xuan Zhuo 2021-02-18 802
9c8f21e6f8856a Xuan Zhuo 2021-02-18 803 return skb;
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 804
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 805 free_err:
0c0d0f42ffa6ac Felix Maurer 2024-11-14 806 if (first_frag && skb)
0c0d0f42ffa6ac Felix Maurer 2024-11-14 807 kfree_skb(skb);
0c0d0f42ffa6ac Felix Maurer 2024-11-14 808
9d0a67b9d42c63 Tirthendu Sarkar 2023-08-23 809 if (err == -EOVERFLOW) {
9d0a67b9d42c63 Tirthendu Sarkar 2023-08-23 810 /* Drop the packet */
67a37dcecabbf0 Maciej Fijalkowski 2025-07-05 811 xsk_inc_skb_descs(xs->skb);
9d0a67b9d42c63 Tirthendu Sarkar 2023-08-23 812 xsk_drop_skb(xs->skb);
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 813 xskq_cons_release(xs->tx);
9d0a67b9d42c63 Tirthendu Sarkar 2023-08-23 814 } else {
9d0a67b9d42c63 Tirthendu Sarkar 2023-08-23 815 /* Let application retry */
e6c4047f512280 Maciej Fijalkowski 2024-10-07 816 xsk_cq_cancel_locked(xs->pool, 1);
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 817 }
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 818
cf24f5a5feeaae Tirthendu Sarkar 2023-07-19 @819 return ERR_PTR(err);
9c8f21e6f8856a Xuan Zhuo 2021-02-18 820 }
9c8f21e6f8856a Xuan Zhuo 2021-02-18 821
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2025-07-06 7:04 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-06 7:03 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-07-05 13:55 [PATCH v2 bpf] xsk: fix immature cq descriptor production Maciej Fijalkowski
2025-07-07 13:59 ` Alexander Lobakin
2025-07-07 15:06 ` Stanislav Fomichev
2025-07-07 15:47 ` Alexander Lobakin
2025-07-07 18:40 ` Stanislav Fomichev
2025-07-08 14:14 ` Maciej Fijalkowski
2025-07-08 15:54 ` Alexander Lobakin
2025-07-08 17:49 ` Stanislav Fomichev
2025-07-09 10:00 ` Maciej Fijalkowski
2025-07-14 19:04 ` Dan Carpenter
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=202507061447.DwFSGum1-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.