From: Wei Xu <wexu@redhat.com>
Always enable notify and bypass set notification
before supporting driver and device area.
Signed-off-by: Wei Xu <wexu@redhat.com>
---
hw/virtio/virtio.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index fdee40f..95a4681 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -425,6 +425,10 @@ void virtio_queue_set_notification(VirtQueue *vq, int enable)
{
vq->notification = enable;
+ if (virtio_vdev_has_feature(vq->vdev, VIRTIO_F_RING_PACKED)) {
+ return;
+ }
+
if (!vq->vring.desc) {
return;
}
@@ -1801,6 +1805,11 @@ static bool virtio_should_notify(VirtIODevice *vdev, VirtQueue *vq)
{
uint16_t old, new;
bool v;
+
+ if (virtio_vdev_has_feature(vdev, VIRTIO_F_RING_PACKED)) {
+ return true;
+ }
+
/* We need to expose used array entries before checking used event. */
smp_mb();
/* Always notify when queue is empty (when feature acknowledge) */
--
2.7.4