From cb83de6f9db657b4414820b24e1e83794fd9b649 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Thu, 18 Aug 2011 15:18:35 +0300 Subject: [PATCH] kvm tools: Add guest compatability warning to virtio-net Signed-off-by: Sasha Levin Signed-off-by: Pekka Enberg --- virtio/net.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/virtio/net.c b/virtio/net.c index cf7eff3..96858b7 100644 --- a/virtio/net.c +++ b/virtio/net.c @@ -10,6 +10,7 @@ #include "kvm/irq.h" #include "kvm/uip.h" #include "kvm/ioeventfd.h" +#include "kvm/guest_compat.h" #include #include @@ -63,6 +64,7 @@ struct net_dev { u32 vq_vector[VIRTIO_NET_NUM_QUEUES]; u32 gsis[VIRTIO_NET_NUM_QUEUES]; u32 msix_io_block; + int compat_id; pthread_t io_rx_thread; pthread_mutex_t io_rx_lock; @@ -265,6 +267,8 @@ static bool virtio_net_pci_io_out(struct ioport *ioport, struct kvm *kvm, u16 po assert(ndev.queue_selector < VIRTIO_NET_NUM_QUEUES); + compat__remove_message(ndev.compat_id); + queue = &ndev.vqs[ndev.queue_selector]; queue->pfn = ioport__read32(data); p = guest_pfn_to_host(kvm, queue->pfn); @@ -520,4 +524,10 @@ void virtio_net__init(const struct virtio_net_parameters *params) ioeventfd__add_event(&ioevent); } + + ndev.compat_id = compat__add_message("virtio-net device was not detected", + "While you have requested a virtio-net device, " + "the guest kernel didn't seem to detect it.\n" + "Please make sure that the kernel was compiled" + "with CONFIG_VIRTIO_NET."); }