virtio: introduce virtio_device_ioeventfd_enabled

This will be used to forbid iothread configuration when the
proxy does not allow using ioeventfd.  To simplify the implementation,
change the direction of the ioeventfd_disabled callback too.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Paolo Bonzini 2016-10-21 22:48:08 +02:00 committed by Michael S. Tsirkin
parent ff4c07df67
commit 8e93cef14e
7 changed files with 32 additions and 13 deletions

View file

@ -92,9 +92,9 @@ typedef struct {
bool format_transport_address;
} VirtIOMMIOProxy;
static bool virtio_mmio_ioeventfd_disabled(DeviceState *d)
static bool virtio_mmio_ioeventfd_enabled(DeviceState *d)
{
return !kvm_eventfds_enabled();
return kvm_eventfds_enabled();
}
static int virtio_mmio_ioeventfd_assign(DeviceState *d,
@ -531,7 +531,7 @@ static void virtio_mmio_bus_class_init(ObjectClass *klass, void *data)
k->save_config = virtio_mmio_save_config;
k->load_config = virtio_mmio_load_config;
k->set_guest_notifiers = virtio_mmio_set_guest_notifiers;
k->ioeventfd_disabled = virtio_mmio_ioeventfd_disabled;
k->ioeventfd_enabled = virtio_mmio_ioeventfd_enabled;
k->ioeventfd_assign = virtio_mmio_ioeventfd_assign;
k->has_variable_vring_alignment = true;
bus_class->max_dev = 1;