[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v2 4/4] Always use eventfd as notifying mechanism
From: |
Alvise Rigo |
Subject: |
[Qemu-devel] [RFC v2 4/4] Always use eventfd as notifying mechanism |
Date: |
Sun, 11 May 2014 19:13:35 +0200 |
When eventfd is not configured the method event_notifier_init fallbacks
to the pipe/pipe2 system call, causing an error in VFIO_DEVICE_SET_IRQS
since we pass to the kernel a file descriptor which is not created by
eventfd.
Signed-off-by: Alvise Rigo <address@hidden>
---
hw/vfio/platform.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
index ec6a29e..40109c6 100644
--- a/hw/vfio/platform.c
+++ b/hw/vfio/platform.c
@@ -324,6 +324,11 @@ static int vfio_enable_intp(VFIODevice *vdev, unsigned int
index)
sysbus_init_irq(sbdev, &intp->qemuirq);
ret = event_notifier_init(&intp->interrupt, 0);
+ if (!ret && (intp->interrupt.rfd != intp->interrupt.wfd)) {
+ /* event_notifier_init created a pipe instead of eventfd */
+ ret = -1;
+ }
+
if (ret) {
error_report("vfio: Error: event_notifier_init failed ");
return ret;
--
1.9.1