]> git.dujemihanovic.xyz Git - linux.git/commitdiff
virtio-net: unbreak vq resizing when coalescing is not negotiated
authorHeng Qi <hengqi@linux.alibaba.com>
Thu, 1 Aug 2024 13:23:38 +0000 (21:23 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Aug 2024 10:10:22 +0000 (11:10 +0100)
Don't break the resize action if the vq coalescing feature
named VIRTIO_NET_F_VQ_NOTF_COAL is not negotiated.

Fixes: f61fe5f081cf ("virtio-net: fix the vq coalescing setting for vq resize")
Signed-off-by: Heng Qi <hengqi@linux.alibaba.com>
Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: Eugenio Pé rez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/virtio_net.c

index b1176be8fcfdf6a09ed6fde02b5c989272b7274a..3f10c72743e94d6f356fc3c17aae79b02d14e00f 100644 (file)
@@ -3749,7 +3749,11 @@ static int virtnet_set_ringparam(struct net_device *dev,
                        err = virtnet_send_tx_ctrl_coal_vq_cmd(vi, i,
                                                               vi->intr_coal_tx.max_usecs,
                                                               vi->intr_coal_tx.max_packets);
-                       if (err)
+
+                       /* Don't break the tx resize action if the vq coalescing is not
+                        * supported. The same is true for rx resize below.
+                        */
+                       if (err && err != -EOPNOTSUPP)
                                return err;
                }
 
@@ -3764,7 +3768,7 @@ static int virtnet_set_ringparam(struct net_device *dev,
                                                               vi->intr_coal_rx.max_usecs,
                                                               vi->intr_coal_rx.max_packets);
                        mutex_unlock(&vi->rq[i].dim_lock);
-                       if (err)
+                       if (err && err != -EOPNOTSUPP)
                                return err;
                }
        }