[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 4/4] xen: ignore direction in bufioreq handling
From: |
Stefano Stabellini |
Subject: |
[Qemu-devel] [PULL 4/4] xen: ignore direction in bufioreq handling |
Date: |
Mon, 28 Nov 2016 11:42:26 -0800 |
From: Jan Beulich <address@hidden>
There's no way to communicate back read data, so only writes can ever
be usefully specified. Ignore the field, paving the road for eventually
re-using the bit for something else in a few (many?) years time.
Signed-off-by: Jan Beulich <address@hidden>
Reviewed-by: Paul Durrant <address@hidden>
Acked-by: Stefano Stabellini <address@hidden>
Signed-off-by: Stefano Stabellini <address@hidden>
---
xen-hvm.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/xen-hvm.c b/xen-hvm.c
index 124ae10..0892361 100644
--- a/xen-hvm.c
+++ b/xen-hvm.c
@@ -997,6 +997,7 @@ static int handle_buffered_iopage(XenIOState *state)
memset(&req, 0x00, sizeof(req));
req.state = STATE_IOREQ_READY;
req.count = 1;
+ req.dir = IOREQ_WRITE;
for (;;) {
uint32_t rdptr = buf_page->read_pointer, wrptr;
@@ -1014,7 +1015,6 @@ static int handle_buffered_iopage(XenIOState *state)
req.size = 1U << buf_req->size;
req.addr = buf_req->addr;
req.data = buf_req->data;
- req.dir = buf_req->dir;
req.type = buf_req->type;
xen_rmb();
qw = (req.size == 8);
@@ -1031,10 +1031,12 @@ static int handle_buffered_iopage(XenIOState *state)
handle_ioreq(state, &req);
/* Only req.data may get updated by handle_ioreq(), albeit even that
- * should not happen as such data would never make it to the guest.
+ * should not happen as such data would never make it to the guest (we
+ * can only usefully see writes here after all).
*/
assert(req.state == STATE_IOREQ_READY);
assert(req.count == 1);
+ assert(req.dir == IOREQ_WRITE);
assert(!req.data_is_ptr);
atomic_add(&buf_page->read_pointer, qw + 1);
--
1.9.1