Re: [PATCH net-next v13 05/12] virtio_net: Query and set flow filter caps
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2025-11-26 23:31:25
Also in:
virtualization
On Wed, Nov 26, 2025 at 01:35:32PM -0600, Daniel Jurgens wrote:
quoted hunk ↗ jump to hunk
@@ -5812,6 +6019,17 @@ static int virtnet_restore_up(struct virtio_device *vdev) return err; } + /* Initialize flow filters. Not supported is an acceptable and common + * return code + */ + rtnl_lock(); + err = virtnet_ff_init(&vi->ff, vi->vdev); + if (err && err != -EOPNOTSUPP) { + rtnl_unlock(); + return err;
does not look like this rolls back previous initialization on error (probe does).
quoted hunk ↗ jump to hunk
+ } + rtnl_unlock(); + netif_tx_lock_bh(vi->dev); netif_device_attach(vi->dev); netif_tx_unlock_bh(vi->dev);@@ -7145,6 +7363,15 @@ static int virtnet_probe(struct virtio_device *vdev) } vi->guest_offloads_capable = vi->guest_offloads; + /* Initialize flow filters. Not supported is an acceptable and common + * return code + */ + err = virtnet_ff_init(&vi->ff, vi->vdev); + if (err && err != -EOPNOTSUPP) { + rtnl_unlock(); + goto free_unregister_netdev; + } + rtnl_unlock(); err = virtnet_cpu_notif_add(vi);@@ -7160,6 +7387,7 @@ static int virtnet_probe(struct virtio_device *vdev) free_unregister_netdev: unregister_netdev(dev); + virtnet_ff_cleanup(&vi->ff); free_failover: net_failover_destroy(vi->failover); free_vqs:@@ -7209,6 +7437,7 @@ static void virtnet_remove(struct virtio_device *vdev) virtnet_free_irq_moder(vi); unregister_netdev(vi->dev); + virtnet_ff_cleanup(&vi->ff); net_failover_destroy(vi->failover);