diff mbox series

[kvmtool] virtio-net: Don't print the compat warning for the default device

Message ID 20230714152909.31723-1-alexandru.elisei@arm.com (mailing list archive)
State New, archived
Headers show
Series [kvmtool] virtio-net: Don't print the compat warning for the default device | expand

Commit Message

Alexandru Elisei July 14, 2023, 3:29 p.m. UTC
Compat messages are there to print a warning when the user creates a virtio
device for the VM, but the guest doesn't initialize it.

This generally works great, except that kvmtool will always create a
virtio-net device, even if the user hasn't specified one, which means that
each time kvmtool loads a guest that doesn't probe the network interface,
the user will get the compat warning. This can get particularly annoying
when running kvm-unit-tests, which doesn't need to use a network interface,
and the virtio-net warning is displayed after each test.

Let's fix this by skipping the compat message in the case of the
automatically created virtio-net device. This lets kvmtool keep the compat
warnings as they are, but removes the false positive.

Even if the user is relying on kvmtool creating the default virtio-net
device, a missing network interface in the guest is very easy to
discover.

Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
---
 virtio/net.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Will Deacon July 20, 2023, 4:04 p.m. UTC | #1
On Fri, 14 Jul 2023 16:29:09 +0100, Alexandru Elisei wrote:
> Compat messages are there to print a warning when the user creates a virtio
> device for the VM, but the guest doesn't initialize it.
> 
> This generally works great, except that kvmtool will always create a
> virtio-net device, even if the user hasn't specified one, which means that
> each time kvmtool loads a guest that doesn't probe the network interface,
> the user will get the compat warning. This can get particularly annoying
> when running kvm-unit-tests, which doesn't need to use a network interface,
> and the virtio-net warning is displayed after each test.
> 
> [...]

Applied to kvmtool (master), thanks!

[1/1] virtio-net: Don't print the compat warning for the default device
      https://git.kernel.org/will/kvmtool/c/15757e8e6441

Cheers,
diff mbox series

Patch

diff --git a/virtio/net.c b/virtio/net.c
index f09dd0a48b53..77f7c9a7a788 100644
--- a/virtio/net.c
+++ b/virtio/net.c
@@ -847,7 +847,7 @@  done:
 	return 0;
 }
 
-static int virtio_net__init_one(struct virtio_net_params *params)
+static int virtio_net__init_one(struct virtio_net_params *params, bool suppress_compat)
 {
 	enum virtio_trans trans = params->kvm->cfg.virtio_transport;
 	struct net_dev *ndev;
@@ -913,7 +913,7 @@  static int virtio_net__init_one(struct virtio_net_params *params)
 	if (params->vhost)
 		virtio_net__vhost_init(params->kvm, ndev);
 
-	if (compat_id == -1)
+	if (compat_id == -1 && !suppress_compat)
 		compat_id = virtio_compat_add_message("virtio-net", "CONFIG_VIRTIO_NET");
 
 	return 0;
@@ -925,7 +925,7 @@  int virtio_net__init(struct kvm *kvm)
 
 	for (i = 0; i < kvm->cfg.num_net_devices; i++) {
 		kvm->cfg.net_params[i].kvm = kvm;
-		r = virtio_net__init_one(&kvm->cfg.net_params[i]);
+		r = virtio_net__init_one(&kvm->cfg.net_params[i], false);
 		if (r < 0)
 			goto cleanup;
 	}
@@ -943,7 +943,7 @@  int virtio_net__init(struct kvm *kvm)
 		str_to_mac(kvm->cfg.guest_mac, net_params.guest_mac);
 		str_to_mac(kvm->cfg.host_mac, net_params.host_mac);
 
-		r = virtio_net__init_one(&net_params);
+		r = virtio_net__init_one(&net_params, true);
 		if (r < 0)
 			goto cleanup;
 	}