From: Rob Bradford via B4 Relay <devnull+rbradford.rivosinc.com@kernel.org> To: "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com> Cc: virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Bradford <rbradford@rivosinc.com> Subject: [PATCH] virtio-net: Fix probe of virtio-net on kvmtool Date: Thu, 23 Feb 2023 17:13:57 +0000 [thread overview] Message-ID: <20230223-virtio-net-kvmtool-v1-1-fc23d29b9d7a@rivosinc.com> (raw) From: Rob Bradford <rbradford@rivosinc.com> kvmtool does not support the VIRTIO_NET_F_CTRL_GUEST_OFFLOADS feature but does advertise the VIRTIO_NET_F_GUEST_TSO{4,6} features. Check that the VIRTIO_NET_F_CTRL_GUEST_OFFLOADS feature is present before setting the NETIF_F_GRO_HW feature bit as otherwise an attempt will be made to program the virtio-net device using the ctrl queue which will fail. This resolves the following error when running on kvmtool: [ 1.865992] net eth0: Fail to set guest offload. [ 1.872491] virtio_net virtio2 eth0: set_features() failed (-22); wanted 0x0000000000134829, left 0x0080000000134829 Signed-off-by: Rob Bradford <rbradford@rivosinc.com> --- drivers/net/virtio_net.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 61e33e4dd0cd..59951e51fe76 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -3781,9 +3781,8 @@ static int virtnet_probe(struct virtio_device *vdev) if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM)) dev->features |= NETIF_F_RXCSUM; if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) || - virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6)) - dev->features |= NETIF_F_GRO_HW; - if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLOADS)) + virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) && + virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLOADS)) dev->hw_features |= NETIF_F_GRO_HW; dev->vlan_features = dev->features; --- base-commit: c39cea6f38eefe356d64d0bc1e1f2267e282cdd3 change-id: 20230223-virtio-net-kvmtool-87f37515be22 Best regards, -- Rob Bradford <rbradford@rivosinc.com>
WARNING: multiple messages have this Message-ID (diff)
From: Rob Bradford <rbradford@rivosinc.com> To: "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com> Cc: virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Bradford <rbradford@rivosinc.com> Subject: [PATCH] virtio-net: Fix probe of virtio-net on kvmtool Date: Thu, 23 Feb 2023 17:13:57 +0000 [thread overview] Message-ID: <20230223-virtio-net-kvmtool-v1-1-fc23d29b9d7a@rivosinc.com> (raw) kvmtool does not support the VIRTIO_NET_F_CTRL_GUEST_OFFLOADS feature but does advertise the VIRTIO_NET_F_GUEST_TSO{4,6} features. Check that the VIRTIO_NET_F_CTRL_GUEST_OFFLOADS feature is present before setting the NETIF_F_GRO_HW feature bit as otherwise an attempt will be made to program the virtio-net device using the ctrl queue which will fail. This resolves the following error when running on kvmtool: [ 1.865992] net eth0: Fail to set guest offload. [ 1.872491] virtio_net virtio2 eth0: set_features() failed (-22); wanted 0x0000000000134829, left 0x0080000000134829 Signed-off-by: Rob Bradford <rbradford@rivosinc.com> --- drivers/net/virtio_net.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 61e33e4dd0cd..59951e51fe76 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -3781,9 +3781,8 @@ static int virtnet_probe(struct virtio_device *vdev) if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM)) dev->features |= NETIF_F_RXCSUM; if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) || - virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6)) - dev->features |= NETIF_F_GRO_HW; - if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLOADS)) + virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) && + virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLOADS)) dev->hw_features |= NETIF_F_GRO_HW; dev->vlan_features = dev->features; --- base-commit: c39cea6f38eefe356d64d0bc1e1f2267e282cdd3 change-id: 20230223-virtio-net-kvmtool-87f37515be22 Best regards, -- Rob Bradford <rbradford@rivosinc.com>
next reply other threads:[~2023-02-23 17:14 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-02-23 17:13 Rob Bradford via B4 Relay [this message] 2023-02-23 17:13 ` [PATCH] virtio-net: Fix probe of virtio-net on kvmtool Rob Bradford 2023-02-23 19:11 ` kernel test robot 2023-02-23 19:11 ` kernel test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20230223-virtio-net-kvmtool-v1-1-fc23d29b9d7a@rivosinc.com \ --to=devnull+rbradford.rivosinc.com@kernel.org \ --cc=davem@davemloft.net \ --cc=edumazet@google.com \ --cc=jasowang@redhat.com \ --cc=kuba@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mst@redhat.com \ --cc=netdev@vger.kernel.org \ --cc=pabeni@redhat.com \ --cc=rbradford@rivosinc.com \ --cc=virtualization@lists.linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.