All of lore.kernel.org
 help / color / mirror / Atom feed
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 net-next 03/11] virtio_net: Create virtio_net directory
Date: Thu, 28 Aug 2025 21:32:03 +0800	[thread overview]
Message-ID: <202508282144.Y9qC4URI-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250827183852.2471-4-danielj@nvidia.com>
References: <20250827183852.2471-4-danielj@nvidia.com>
TO: Daniel Jurgens <danielj@nvidia.com>
TO: netdev@vger.kernel.org
TO: mst@redhat.com
TO: jasowang@redhat.com
TO: alex.williamson@redhat.com
TO: virtualization@lists.linux.dev
TO: pabeni@redhat.com
CC: parav@nvidia.com
CC: shshitrit@nvidia.com
CC: yohadt@nvidia.com
CC: Daniel Jurgens <danielj@nvidia.com>

Hi Daniel,

kernel test robot noticed the following build warnings:

[auto build test WARNING on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Daniel-Jurgens/virtio-pci-Expose-generic-device-capability-operations/20250828-024128
base:   net-next/main
patch link:    https://lore.kernel.org/r/20250827183852.2471-4-danielj%40nvidia.com
patch subject: [PATCH net-next 03/11] virtio_net: Create virtio_net directory
:::::: branch date: 19 hours ago
:::::: commit date: 19 hours ago
config: x86_64-randconfig-r073-20250828 (https://download.01.org/0day-ci/archive/20250828/202508282144.Y9qC4URI-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/202508282144.Y9qC4URI-lkp@intel.com/

smatch warnings:
drivers/net/virtio_net/virtio_net_main.c:2188 build_skb_from_xdp_buff() error: uninitialized symbol 'nr_frags'.
drivers/net/virtio_net/virtio_net_main.c:2262 virtnet_build_xdp_buff_mrg() error: uninitialized symbol 'shinfo'.
drivers/net/virtio_net/virtio_net_main.c:3187 virtnet_update_settings() error: uninitialized symbol 'virtio_cread_v'.
drivers/net/virtio_net/virtio_net_main.c:6279 virtnet_config_changed_work() error: uninitialized symbol 'virtio_cread_v'.
drivers/net/virtio_net/virtio_net_main.c:6283 virtnet_config_changed_work() error: uninitialized symbol 'v'.

vim +/nr_frags +2188 drivers/net/virtio_net/virtio_net_main.c

80f50f918c6e2d drivers/net/virtio_net.c Xuan Zhuo      2023-05-08  2146  
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2147  /* Why not use xdp_build_skb_from_frame() ?
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2148   * XDP core assumes that xdp frags are PAGE_SIZE in length, while in
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2149   * virtio-net there are 2 points that do not match its requirements:
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2150   *  1. The size of the prefilled buffer is not fixed before xdp is set.
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2151   *  2. xdp_build_skb_from_frame() does more checks that we don't need,
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2152   *     like eth_type_trans() (which virtio-net does in receive_buf()).
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2153   */
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2154  static struct sk_buff *build_skb_from_xdp_buff(struct net_device *dev,
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2155  					       struct virtnet_info *vi,
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2156  					       struct xdp_buff *xdp,
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2157  					       unsigned int xdp_frags_truesz)
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2158  {
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2159  	struct skb_shared_info *sinfo = xdp_get_shared_info_from_buff(xdp);
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2160  	unsigned int headroom, data_len;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2161  	struct sk_buff *skb;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2162  	int metasize;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2163  	u8 nr_frags;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2164  
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2165  	if (unlikely(xdp->data_end > xdp_data_hard_end(xdp))) {
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2166  		pr_debug("Error building skb as missing reserved tailroom for xdp");
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2167  		return NULL;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2168  	}
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2169  
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2170  	if (unlikely(xdp_buff_has_frags(xdp)))
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2171  		nr_frags = sinfo->nr_frags;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2172  
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2173  	skb = build_skb(xdp->data_hard_start, xdp->frame_sz);
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2174  	if (unlikely(!skb))
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2175  		return NULL;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2176  
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2177  	headroom = xdp->data - xdp->data_hard_start;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2178  	data_len = xdp->data_end - xdp->data;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2179  	skb_reserve(skb, headroom);
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2180  	__skb_put(skb, data_len);
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2181  
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2182  	metasize = xdp->data - xdp->data_meta;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2183  	metasize = metasize > 0 ? metasize : 0;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2184  	if (metasize)
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2185  		skb_metadata_set(skb, metasize);
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2186  
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2187  	if (unlikely(xdp_buff_has_frags(xdp)))
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14 @2188  		xdp_update_skb_shared_info(skb, nr_frags,
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2189  					   sinfo->xdp_frags_size,
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2190  					   xdp_frags_truesz,
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2191  					   xdp_buff_is_frag_pfmemalloc(xdp));
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2192  
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2193  	return skb;
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2194  }
b26aa481b4b710 drivers/net/virtio_net.c Heng Qi        2023-01-14  2195  
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2196  /* TODO: build xdp in big mode */
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2197  static int virtnet_build_xdp_buff_mrg(struct net_device *dev,
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2198  				      struct virtnet_info *vi,
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2199  				      struct receive_queue *rq,
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2200  				      struct xdp_buff *xdp,
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2201  				      void *buf,
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2202  				      unsigned int len,
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2203  				      unsigned int frame_sz,
981f14d42a7f16 drivers/net/virtio_net.c Heng Qi        2023-01-31  2204  				      int *num_buf,
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2205  				      unsigned int *xdp_frags_truesize,
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2206  				      struct virtnet_rq_stats *stats)
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2207  {
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2208  	struct virtio_net_hdr_mrg_rxbuf *hdr = buf;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2209  	struct skb_shared_info *shinfo;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2210  	unsigned int xdp_frags_truesz = 0;
4be2193b3393dc drivers/net/virtio_net.c Bui Quang Minh 2025-06-30  2211  	unsigned int truesize;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2212  	struct page *page;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2213  	skb_frag_t *frag;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2214  	int offset;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2215  	void *ctx;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2216  
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2217  	xdp_init_buff(xdp, frame_sz, &rq->xdp_rxq);
41d4a174201e62 drivers/net/virtio_net.c Xuan Zhuo      2024-07-08  2218  	xdp_prepare_buff(xdp, buf - XDP_PACKET_HEADROOM,
41d4a174201e62 drivers/net/virtio_net.c Xuan Zhuo      2024-07-08  2219  			 XDP_PACKET_HEADROOM + vi->hdr_len, len - vi->hdr_len, true);
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2220  
981f14d42a7f16 drivers/net/virtio_net.c Heng Qi        2023-01-31  2221  	if (!*num_buf)
981f14d42a7f16 drivers/net/virtio_net.c Heng Qi        2023-01-31  2222  		return 0;
981f14d42a7f16 drivers/net/virtio_net.c Heng Qi        2023-01-31  2223  
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2224  	if (*num_buf > 1) {
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2225  		/* If we want to build multi-buffer xdp, we need
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2226  		 * to specify that the flags of xdp_buff have the
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2227  		 * XDP_FLAGS_HAS_FRAG bit.
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2228  		 */
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2229  		if (!xdp_buff_has_frags(xdp))
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2230  			xdp_buff_set_frags_flag(xdp);
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2231  
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2232  		shinfo = xdp_get_shared_info_from_buff(xdp);
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2233  		shinfo->nr_frags = 0;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2234  		shinfo->xdp_frags_size = 0;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2235  	}
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2236  
981f14d42a7f16 drivers/net/virtio_net.c Heng Qi        2023-01-31  2237  	if (*num_buf > MAX_SKB_FRAGS + 1)
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2238  		return -EINVAL;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2239  
981f14d42a7f16 drivers/net/virtio_net.c Heng Qi        2023-01-31  2240  	while (--*num_buf > 0) {
295525e29a5b56 drivers/net/virtio_net.c Xuan Zhuo      2023-08-10  2241  		buf = virtnet_rq_get_buf(rq, &len, &ctx);
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2242  		if (unlikely(!buf)) {
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2243  			pr_debug("%s: rx error: %d buffers out of %d missing\n",
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2244  				 dev->name, *num_buf,
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2245  				 virtio16_to_cpu(vi->vdev, hdr->num_buffers));
d12a26b74fb774 drivers/net/virtio_net.c Eric Dumazet   2023-09-21  2246  			DEV_STATS_INC(dev, rx_length_errors);
4cb00b13c06408 drivers/net/virtio_net.c Xuan Zhuo      2023-05-08  2247  			goto err;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2248  		}
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2249  
61217d8f636043 drivers/net/virtio_net.c Eric Dumazet   2023-10-26  2250  		u64_stats_add(&stats->bytes, len);
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2251  		page = virt_to_head_page(buf);
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2252  		offset = buf - page_address(page);
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2253  
7d4a119e45828e drivers/net/virtio_net.c Bui Quang Minh 2025-06-30  2254  		if (check_mergeable_len(dev, ctx, len)) {
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2255  			put_page(page);
4cb00b13c06408 drivers/net/virtio_net.c Xuan Zhuo      2023-05-08  2256  			goto err;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2257  		}
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2258  
7d4a119e45828e drivers/net/virtio_net.c Bui Quang Minh 2025-06-30  2259  		truesize = mergeable_ctx_to_truesize(ctx);
7d4a119e45828e drivers/net/virtio_net.c Bui Quang Minh 2025-06-30  2260  		xdp_frags_truesz += truesize;
7d4a119e45828e drivers/net/virtio_net.c Bui Quang Minh 2025-06-30  2261  
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14 @2262  		frag = &shinfo->frags[shinfo->nr_frags++];
b51f4113ebb020 drivers/net/virtio_net.c Yunsheng Lin   2023-05-11  2263  		skb_frag_fill_page_desc(frag, page, offset, len);
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2264  		if (page_is_pfmemalloc(page))
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2265  			xdp_buff_set_frag_pfmemalloc(xdp);
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2266  
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2267  		shinfo->xdp_frags_size += len;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2268  	}
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2269  
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2270  	*xdp_frags_truesize = xdp_frags_truesz;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2271  	return 0;
4cb00b13c06408 drivers/net/virtio_net.c Xuan Zhuo      2023-05-08  2272  
4cb00b13c06408 drivers/net/virtio_net.c Xuan Zhuo      2023-05-08  2273  err:
4cb00b13c06408 drivers/net/virtio_net.c Xuan Zhuo      2023-05-08  2274  	put_xdp_frags(xdp);
4cb00b13c06408 drivers/net/virtio_net.c Xuan Zhuo      2023-05-08  2275  	return -EINVAL;
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2276  }
ef75cb51f13941 drivers/net/virtio_net.c Heng Qi        2023-01-14  2277  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

             reply	other threads:[~2025-08-28 13:33 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-28 13:32 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-08-27 18:38 [PATCH net-next 00/11] virtio_net: Add ethtool flow rules support Daniel Jurgens
2025-08-27 18:38 ` [PATCH net-next 03/11] virtio_net: Create virtio_net directory Daniel Jurgens

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=202508282144.Y9qC4URI-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.