On Sun, Mar 31, 2024 at 04:20:30PM -0400, Michael S. Tsirkin wrote:
> On Fri, Mar 29, 2024 at 10:16:41AM -0700, Breno Leitao wrote:
> > @@ -3814,13 +3815,24 @@ static int virtnet_set_rxfh(struct net_device *dev,
> >             return -EOPNOTSUPP;
> >  
> >     if (rxfh->indir) {
> > +           if (!vi->has_rss)
> > +                   return -EOPNOTSUPP;
> > +
> >             for (i = 0; i < vi->rss_indir_table_size; ++i)
> >                     vi->ctrl->rss.indirection_table[i] = rxfh->indir[i];
> > +           update = true;
> >     }
> > -   if (rxfh->key)
> > +
> > +   if (rxfh->key) {
> > +           if (!vi->has_rss && !vi->has_rss_hash_report)
> > +                   return -EOPNOTSUPP;
> 
> 
> What's the logic here? Is it || or &&? A comment can't hurt.

If txfh carries a key, then the device needs to has either has_rss or
has_rss_hash_report "features".

These are basically virtio features VIRTIO_NET_F_HASH_REPORT and
VIRTIO_NET_F_RSS that are set at virtio_probe.

I will add the comment and respin the series.

Reply via email to