]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Aug 2024 13:34:02 +0000 (15:34 +0200)
[ Upstream commit 4ba8d97083707409822264fd1776aad7233f353e ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/virtio_net.c

index 5161e7efda2cb0b9ba472f25f2311aee045d8f97..f32e017b62e9b38093a7a75fa43ce0670734a0b2 100644 (file)
@@ -3257,7 +3257,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;
                }
 
@@ -3272,7 +3276,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;
                }
        }