[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] libqos: fix bugs in qvirtqueue_kick()
From: |
zhangshuai |
Subject: |
[Qemu-devel] [PATCH] libqos: fix bugs in qvirtqueue_kick() |
Date: |
Fri, 26 Aug 2016 11:18:22 +0800 |
From: Zhang Shuai <address@hidden>
The idx and ring[] of vring_avail is 16-bit, but the writel
is 32-bit, the second writel will cover the ring[free_head]
with 0. So use writew to replace writel to fix the bug.
Signed-off-by: zhangshuai <address@hidden>
---
tests/libqos/virtio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/libqos/virtio.c b/tests/libqos/virtio.c
index d8c2970..801690f 100644
--- a/tests/libqos/virtio.c
+++ b/tests/libqos/virtio.c
@@ -264,9 +264,9 @@ void qvirtqueue_kick(const QVirtioBus *bus, QVirtioDevice
*d, QVirtQueue *vq,
uint16_t avail_event;
/* vq->avail->ring[idx % vq->size] */
- writel(vq->avail + 4 + (2 * (idx % vq->size)), free_head);
+ writew(vq->avail + 4 + (2 * (idx % vq->size)), free_head);
/* vq->avail->idx */
- writel(vq->avail + 2, idx + 1);
+ writew(vq->avail + 2, idx + 1);
/* Must read after idx is updated */
flags = readw(vq->avail);
--
1.8.3.4
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] libqos: fix bugs in qvirtqueue_kick(),
zhangshuai <=