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]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to