|
@@ -22,7 +22,7 @@ static u64 user_addr_offset;
|
|
|
#define RINGSIZE 256
|
|
|
#define ALIGN 4096
|
|
|
|
|
|
-static void never_notify_host(struct virtqueue *vq)
|
|
|
+static bool never_notify_host(struct virtqueue *vq)
|
|
|
{
|
|
|
abort();
|
|
|
}
|
|
@@ -65,17 +65,22 @@ struct guest_virtio_device {
|
|
|
unsigned long notifies;
|
|
|
};
|
|
|
|
|
|
-static void parallel_notify_host(struct virtqueue *vq)
|
|
|
+static bool parallel_notify_host(struct virtqueue *vq)
|
|
|
{
|
|
|
+ int rc;
|
|
|
struct guest_virtio_device *gvdev;
|
|
|
|
|
|
gvdev = container_of(vq->vdev, struct guest_virtio_device, vdev);
|
|
|
- write(gvdev->to_host_fd, "", 1);
|
|
|
+ rc = write(gvdev->to_host_fd, "", 1);
|
|
|
+ if (rc < 0)
|
|
|
+ return false;
|
|
|
gvdev->notifies++;
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
-static void no_notify_host(struct virtqueue *vq)
|
|
|
+static bool no_notify_host(struct virtqueue *vq)
|
|
|
{
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
#define NUM_XFERS (10000000)
|