Message ID | 20241104085706.13872-4-lulie@linux.alibaba.com (mailing list archive) |
---|---|
State | Accepted |
Commit | dc749b7b06082ccaacc602e724445da19cd03e9f |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | virtio_net: Make RSS interact properly with queue number | expand |
On Mon, Nov 04, 2024 at 04:57:05PM +0800, Philo Lu wrote: > During virtnet_probe, default rss configuration is initialized, but was > not committed to the device. This patch fix this by sending rss command > after device ready in virtnet_probe. Otherwise, the actual rss > configuration used by device can be different with that read by user > from driver, which may confuse the user. > > If the command committing fails, driver rss will be disabled. > > Fixes: c7114b1249fa ("drivers/net/virtio_net: Added basic RSS support.") > Signed-off-by: Philo Lu <lulie@linux.alibaba.com> > Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> > --- > drivers/net/virtio_net.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index acc3e5dc112e..59d9fdf562e0 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -6584,6 +6584,15 @@ static int virtnet_probe(struct virtio_device *vdev) > > virtio_device_ready(vdev); > > + if (vi->has_rss || vi->has_rss_hash_report) { > + if (!virtnet_commit_rss_command(vi)) { > + dev_warn(&vdev->dev, "RSS disabled because committing failed.\n"); > + dev->hw_features &= ~NETIF_F_RXHASH; > + vi->has_rss_hash_report = false; > + vi->has_rss = false; > + } > + } > + > virtnet_set_queues(vi, vi->curr_queue_pairs); > > /* a random MAC address has been assigned, notify the device. Acked-by: Joe Damato <jdamato@fastly.com>
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index acc3e5dc112e..59d9fdf562e0 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -6584,6 +6584,15 @@ static int virtnet_probe(struct virtio_device *vdev) virtio_device_ready(vdev); + if (vi->has_rss || vi->has_rss_hash_report) { + if (!virtnet_commit_rss_command(vi)) { + dev_warn(&vdev->dev, "RSS disabled because committing failed.\n"); + dev->hw_features &= ~NETIF_F_RXHASH; + vi->has_rss_hash_report = false; + vi->has_rss = false; + } + } + virtnet_set_queues(vi, vi->curr_queue_pairs); /* a random MAC address has been assigned, notify the device.