CC: [email protected] In-Reply-To: <1c65090b9b379528b18994c9ee5658c75ff1c71b.1627463617.git.lore...@kernel.org> References: <1c65090b9b379528b18994c9ee5658c75ff1c71b.1627463617.git.lore...@kernel.org> TO: Lorenzo Bianconi <[email protected]> TO: [email protected] TO: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] CC: [email protected]
Hi Lorenzo, I love your patch! Perhaps something to improve: [auto build test WARNING on bpf-next/master] url: https://github.com/0day-ci/linux/commits/Lorenzo-Bianconi/net-skbuff-add-size-metadata-to-skb_shared_info-for-xdp/20210728-183811 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master :::::: branch date: 7 days ago :::::: commit date: 7 days ago config: x86_64-randconfig-m001-20210804 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: net/core/xdp.c:568 __xdp_build_skb_from_frame() error: uninitialized symbol 'nr_frags'. net/core/xdp.c:569 __xdp_build_skb_from_frame() error: uninitialized symbol 'frag_size'. net/core/xdp.c:569 __xdp_build_skb_from_frame() error: uninitialized symbol 'frag_tsize'. vim +/nr_frags +568 net/core/xdp.c 65e6dcf73398dd Lorenzo Bianconi 2021-01-29 529 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 530 struct sk_buff *__xdp_build_skb_from_frame(struct xdp_frame *xdpf, 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 531 struct sk_buff *skb, 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 532 struct net_device *dev) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 533 { 78139a2230d403 Lorenzo Bianconi 2021-07-28 534 unsigned int frag_size, frag_tsize; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 535 unsigned int headroom, frame_size; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 536 void *hard_start; 78139a2230d403 Lorenzo Bianconi 2021-07-28 537 u8 nr_frags; 78139a2230d403 Lorenzo Bianconi 2021-07-28 538 78139a2230d403 Lorenzo Bianconi 2021-07-28 539 /* xdp multi-buff frame */ 78139a2230d403 Lorenzo Bianconi 2021-07-28 540 if (unlikely(xdp_frame_is_mb(xdpf))) { 78139a2230d403 Lorenzo Bianconi 2021-07-28 541 struct skb_shared_info *sinfo; 78139a2230d403 Lorenzo Bianconi 2021-07-28 542 78139a2230d403 Lorenzo Bianconi 2021-07-28 543 sinfo = xdp_get_shared_info_from_frame(xdpf); 78139a2230d403 Lorenzo Bianconi 2021-07-28 544 frag_tsize = sinfo->xdp_frags_tsize; 78139a2230d403 Lorenzo Bianconi 2021-07-28 545 frag_size = sinfo->xdp_frags_size; 78139a2230d403 Lorenzo Bianconi 2021-07-28 546 nr_frags = sinfo->nr_frags; 78139a2230d403 Lorenzo Bianconi 2021-07-28 547 } 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 548 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 549 /* Part of headroom was reserved to xdpf */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 550 headroom = sizeof(*xdpf) + xdpf->headroom; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 551 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 552 /* Memory size backing xdp_frame data already have reserved 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 553 * room for build_skb to place skb_shared_info in tailroom. 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 554 */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 555 frame_size = xdpf->frame_sz; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 556 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 557 hard_start = xdpf->data - headroom; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 558 skb = build_skb_around(skb, hard_start, frame_size); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 559 if (unlikely(!skb)) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 560 return NULL; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 561 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 562 skb_reserve(skb, headroom); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 563 __skb_put(skb, xdpf->len); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 564 if (xdpf->metasize) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 565 skb_metadata_set(skb, xdpf->metasize); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 566 78139a2230d403 Lorenzo Bianconi 2021-07-28 567 if (unlikely(xdp_frame_is_mb(xdpf))) 78139a2230d403 Lorenzo Bianconi 2021-07-28 @568 xdp_update_skb_shared_info(skb, nr_frags, 78139a2230d403 Lorenzo Bianconi 2021-07-28 @569 frag_size, frag_tsize, 78139a2230d403 Lorenzo Bianconi 2021-07-28 570 xdp_frame_is_frag_pfmemalloc(xdpf)); 78139a2230d403 Lorenzo Bianconi 2021-07-28 571 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 572 /* Essential SKB info: protocol and skb->dev */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 573 skb->protocol = eth_type_trans(skb, dev); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 574 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 575 /* Optional SKB info, currently missing: 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 576 * - HW checksum info (skb->ip_summed) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 577 * - HW RX hash (skb_set_hash) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 578 * - RX ring dev queue index (skb_record_rx_queue) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 579 */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 580 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 581 /* Until page_pool get SKB return path, release DMA here */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 582 xdp_release_frame(xdpf); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 583 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 584 /* Allow SKB to reuse area used by xdp_frame */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 585 xdp_scrub_frame(xdpf); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 586 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 587 return skb; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 588 } 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 589 EXPORT_SYMBOL_GPL(__xdp_build_skb_from_frame); 89f479f0eccfc8 Lorenzo Bianconi 2021-01-12 590 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
