Re: [PATCH 1/4] virtio-net: convert rx mode setting to use workqueue

From: Michael S. Tsirkin
Date: Tue Dec 27 2022 - 02:40:20 EST


On Mon, Dec 26, 2022 at 03:49:05PM +0800, Jason Wang wrote:
> @@ -2227,9 +2267,21 @@ static void virtnet_set_rx_mode(struct net_device *dev)
> VIRTIO_NET_CTRL_MAC_TABLE_SET, sg))
> dev_warn(&dev->dev, "Failed to set MAC filter table.\n");
>
> + rtnl_unlock();
> +
> kfree(buf);
> }
>
> +static void virtnet_set_rx_mode(struct net_device *dev)
> +{
> + struct virtnet_info *vi = netdev_priv(dev);
> +
> + spin_lock(&vi->rx_mode_lock);
> + if (vi->rx_mode_work_enabled)
> + schedule_work(&vi->rx_mode_work);
> + spin_unlock(&vi->rx_mode_lock);
> +}
> +
> static int virtnet_vlan_rx_add_vid(struct net_device *dev,
> __be16 proto, u16 vid)
> {

Hmm so user tells us to e.g enable promisc. We report completion
but card is still dropping packets. I think this
has a chance to break some setups.

--
MST