diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2015-07-27 16:55:23 +0200 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2015-09-07 16:10:43 +0200 |
commit | f7822aa8b610a4fec57a09066974e5c088592c08 (patch) | |
tree | e5f6b01965f8b408c574153de877f1274698c17f /include/hw | |
parent | 6b7741c2bedeae2e8c54fffce81723ca0a0c25c0 (diff) | |
download | hqemu-f7822aa8b610a4fec57a09066974e5c088592c08.zip hqemu-f7822aa8b610a4fec57a09066974e5c088592c08.tar.gz |
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.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/hw/s390x/event-facility.h b/include/hw/s390x/event-facility.h index 6a062b6..871f3e7 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 { |