aboutsummaryrefslogtreecommitdiff
path: root/include/hw
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2015-07-27 16:55:23 +0200
committerCornelia Huck <cornelia.huck@de.ibm.com>2015-09-07 16:10:43 +0200
commitf7822aa8b610a4fec57a09066974e5c088592c08 (patch)
treee5f6b01965f8b408c574153de877f1274698c17f /include/hw
parent6b7741c2bedeae2e8c54fffce81723ca0a0c25c0 (diff)
s390x/event-facility: fix location of receive mask
For read event mask, we assumed that the layout of the sccb was |sccb header|event buffer header|receive mask|...| The correct layout, however, is |sccb header|receive mask|...| as in-buffer and |sccb header|event buffer header|...| as out-buffer. Fix this: This makes selective read work. Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'include/hw')
-rw-r--r--include/hw/s390x/event-facility.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/hw/s390x/event-facility.h b/include/hw/s390x/event-facility.h
index 6a062b668a..871f3e7f11 100644
--- a/include/hw/s390x/event-facility.h
+++ b/include/hw/s390x/event-facility.h
@@ -146,8 +146,10 @@ typedef struct WriteEventData {
typedef struct ReadEventData {
SCCBHeader h;
- EventBufferHeader ebh;
- uint32_t mask;
+ union {
+ uint32_t mask;
+ EventBufferHeader ebh;
+ };
} QEMU_PACKED ReadEventData;
typedef struct SCLPEvent {