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 |
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 --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; }
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(-)