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@xxxxxxx> --- virtio/net.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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; } -- 2.41.0