Subject: Re: [EXTERNAL] Re: [PATCH net-next,2/2] virtio_net: replace RSS key size max check with BUILD_BUG_ON

From: "Michael S. Tsirkin" <[email-masked]>
Date: Wed, 25 Feb 2026 07:35:12 -0500

On Wed, Feb 25, 2026 at 12:29:41PM +0000, Srujana Challa wrote:
> > > > patch 1 is unreasonable i think.
> > >
> > > Patch 1 is targeted for net, addressing an issue where
> > > VIRTIO_NET_RSS_MAX_KEY_SIZE is fixed at 40, which is only the minimum
> > > required by the spec. This led to virtio‑net probe failures when
> > > devices reported an RSS key size greater than 40. However, the driver
> > > also cannot handle keys larger than NETDEV_RSS_KEY_LEN (previously 52)
> > > due to the BUG_ON(len > sizeof(netdev_rss_key)) in netdev_rss_key_fill. To
> > resolve both issues, VIRTIO_NET_RSS_MAX_KEY_SIZE has been replaced with
> > NETDEV_RSS_KEY_LEN.
> > 
> > but where would driver *get* keys larger than sizeof(netdev_rss_key), even if
> > device supports more.
> In virtio‑net, we rely on netdev_rss_key_fill() during virtnet_init_default_rss() to populate the RSS hash key,
> which uses device supported length.
> The code path is:
> static void virtnet_init_default_rss(struct virtnet_info *vi)
> {
>         vi->rss_hdr->hash_types = cpu_to_le32(vi->rss_hash_types_supported);
>         vi->rss_hash_types_saved = vi->rss_hash_types_supported;
>         vi->rss_hdr->indirection_table_mask = vi->rss_indir_table_size
>                                                 ? cpu_to_le16(vi->rss_indir_table_size - 1) : 0;
>         vi->rss_hdr->unclassified_queue = 0;
> 
>         virtnet_rss_update_by_qpairs(vi, vi->curr_queue_pairs);
> 
>         vi->rss_trailer.hash_key_length = vi->rss_key_size;
> 
>         netdev_rss_key_fill(vi->rss_hash_key_data, vi->rss_key_size);
> }

Is there a point you are trying to make? disabling features because user
bought a stronger device is counter intuitive. Make it work
in a sane way pls.

-- 
MST