CC: [email protected] In-Reply-To: <90a6c9dfd3877a44248daca8fe7cc33a8c0addf0.1638272238.git.lore...@kernel.org> References: <90a6c9dfd3877a44248daca8fe7cc33a8c0addf0.1638272238.git.lore...@kernel.org> TO: Lorenzo Bianconi <[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/mvneta-introduce-XDP-multi-buffer-support/20211130-195834 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master :::::: branch date: 31 hours ago :::::: commit date: 31 hours ago config: i386-randconfig-m021-20211130 (https://download.01.org/0day-ci/archive/20211202/[email protected]/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:560 __xdp_build_skb_from_frame() error: uninitialized symbol 'nr_frags'. vim +/nr_frags +560 net/core/xdp.c 65e6dcf73398dd Lorenzo Bianconi 2021-01-29 527 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 528 struct sk_buff *__xdp_build_skb_from_frame(struct xdp_frame *xdpf, 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 529 struct sk_buff *skb, 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 530 struct net_device *dev) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 531 { 72df9af110288c Lorenzo Bianconi 2021-11-30 532 struct skb_shared_info *sinfo = xdp_get_shared_info_from_frame(xdpf); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 533 unsigned int headroom, frame_size; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 534 void *hard_start; 72df9af110288c Lorenzo Bianconi 2021-11-30 535 u8 nr_frags; 72df9af110288c Lorenzo Bianconi 2021-11-30 536 72df9af110288c Lorenzo Bianconi 2021-11-30 537 /* xdp multi-buff frame */ 72df9af110288c Lorenzo Bianconi 2021-11-30 538 if (unlikely(xdp_frame_is_mb(xdpf))) 72df9af110288c Lorenzo Bianconi 2021-11-30 539 nr_frags = sinfo->nr_frags; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 540 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 541 /* Part of headroom was reserved to xdpf */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 542 headroom = sizeof(*xdpf) + xdpf->headroom; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 543 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 544 /* Memory size backing xdp_frame data already have reserved 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 545 * room for build_skb to place skb_shared_info in tailroom. 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 546 */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 547 frame_size = xdpf->frame_sz; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 548 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 549 hard_start = xdpf->data - headroom; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 550 skb = build_skb_around(skb, hard_start, frame_size); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 551 if (unlikely(!skb)) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 552 return NULL; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 553 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 554 skb_reserve(skb, headroom); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 555 __skb_put(skb, xdpf->len); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 556 if (xdpf->metasize) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 557 skb_metadata_set(skb, xdpf->metasize); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 558 72df9af110288c Lorenzo Bianconi 2021-11-30 559 if (unlikely(xdp_frame_is_mb(xdpf))) 72df9af110288c Lorenzo Bianconi 2021-11-30 @560 xdp_update_skb_shared_info(skb, nr_frags, 72df9af110288c Lorenzo Bianconi 2021-11-30 561 sinfo->xdp_frags_size, 72df9af110288c Lorenzo Bianconi 2021-11-30 562 nr_frags * xdpf->frame_sz, 72df9af110288c Lorenzo Bianconi 2021-11-30 563 xdp_frame_is_frag_pfmemalloc(xdpf)); 72df9af110288c Lorenzo Bianconi 2021-11-30 564 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 565 /* Essential SKB info: protocol and skb->dev */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 566 skb->protocol = eth_type_trans(skb, dev); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 567 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 568 /* Optional SKB info, currently missing: 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 569 * - HW checksum info (skb->ip_summed) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 570 * - HW RX hash (skb_set_hash) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 571 * - RX ring dev queue index (skb_record_rx_queue) 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 572 */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 573 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 574 /* Until page_pool get SKB return path, release DMA here */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 575 xdp_release_frame(xdpf); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 576 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 577 /* Allow SKB to reuse area used by xdp_frame */ 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 578 xdp_scrub_frame(xdpf); 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 579 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 580 return skb; 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 581 } 97a0e1ea7b41c2 Lorenzo Bianconi 2021-01-12 582 EXPORT_SYMBOL_GPL(__xdp_build_skb_from_frame); 89f479f0eccfc8 Lorenzo Bianconi 2021-01-12 583 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
