CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-ker...@vger.kernel.org TO: Alexander Lobakin <alexandr.loba...@intel.com>
tree: https://github.com/alobakin/linux xdp_hints head: e9f4215398901c2e3f477da53abc668ce7b7e320 commit: 40ce0c8bf2731c92fb015a03a7f9b26d90d547d0 [5/52] net, xdp: decouple XDP code from the core networking code :::::: branch date: 4 days ago :::::: commit date: 4 days ago config: x86_64-randconfig-m001 (https://download.01.org/0day-ci/archive/20220703/202207030728.vx55vqml-...@intel.com/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <l...@intel.com> Reported-by: Dan Carpenter <dan.carpen...@oracle.com> smatch warnings: net/bpf/core.c:648 __xdp_build_skb_from_frame() error: uninitialized symbol 'nr_frags'. vim +/nr_frags +648 net/bpf/core.c 65e6dcf73398dd net/core/xdp.c Lorenzo Bianconi 2021-01-29 615 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 616 struct sk_buff *__xdp_build_skb_from_frame(struct xdp_frame *xdpf, 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 617 struct sk_buff *skb, 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 618 struct net_device *dev) 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 619 { d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 620 struct skb_shared_info *sinfo = xdp_get_shared_info_from_frame(xdpf); 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 621 unsigned int headroom, frame_size; 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 622 void *hard_start; d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 623 u8 nr_frags; d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 624 d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 625 /* xdp frags frame */ d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 626 if (unlikely(xdp_frame_has_frags(xdpf))) d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 627 nr_frags = sinfo->nr_frags; 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 628 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 629 /* Part of headroom was reserved to xdpf */ 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 630 headroom = sizeof(*xdpf) + xdpf->headroom; 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 631 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 632 /* Memory size backing xdp_frame data already have reserved 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 633 * room for build_skb to place skb_shared_info in tailroom. 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 634 */ 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 635 frame_size = xdpf->frame_sz; 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 636 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 637 hard_start = xdpf->data - headroom; 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 638 skb = build_skb_around(skb, hard_start, frame_size); 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 639 if (unlikely(!skb)) 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 640 return NULL; 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 641 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 642 skb_reserve(skb, headroom); 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 643 __skb_put(skb, xdpf->len); 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 644 if (xdpf->metasize) 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 645 skb_metadata_set(skb, xdpf->metasize); 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 646 d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 647 if (unlikely(xdp_frame_has_frags(xdpf))) d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 @648 xdp_update_skb_shared_info(skb, nr_frags, d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 649 sinfo->xdp_frags_size, d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 650 nr_frags * xdpf->frame_sz, d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 651 xdp_frame_is_frag_pfmemalloc(xdpf)); d65a1906b31246 net/core/xdp.c Lorenzo Bianconi 2022-01-21 652 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 653 /* Essential SKB info: protocol and skb->dev */ 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 654 skb->protocol = eth_type_trans(skb, dev); 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 655 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 656 /* Optional SKB info, currently missing: 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 657 * - HW checksum info (skb->ip_summed) 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 658 * - HW RX hash (skb_set_hash) 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 659 * - RX ring dev queue index (skb_record_rx_queue) 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 660 */ 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 661 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 662 /* Until page_pool get SKB return path, release DMA here */ 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 663 xdp_release_frame(xdpf); 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 664 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 665 /* Allow SKB to reuse area used by xdp_frame */ 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 666 xdp_scrub_frame(xdpf); 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 667 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 668 return skb; 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 669 } 97a0e1ea7b41c2 net/core/xdp.c Lorenzo Bianconi 2021-01-12 670 EXPORT_SYMBOL_GPL(__xdp_build_skb_from_frame); 89f479f0eccfc8 net/core/xdp.c Lorenzo Bianconi 2021-01-12 671 :::::: The code at line 648 was first introduced by commit :::::: d65a1906b31246492449eafe9cace188cb59e26c net: xdp: add xdp_update_skb_shared_info utility routine :::::: TO: Lorenzo Bianconi <lore...@kernel.org> :::::: CC: Alexei Starovoitov <a...@kernel.org> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org