summaryrefslogtreecommitdiff
path: root/target-s390x
diff options
context:
space:
mode:
authorSong Shan Gong <gongss@linux.vnet.ibm.com>2016-01-19 02:55:00 +0100
committerCornelia Huck <cornelia.huck@de.ibm.com>2016-01-27 15:34:47 +0100
commitc81b4f896f2768a34d6e65e5f3e588515b10f631 (patch)
treeaa5013c5420be6aa91db3e1489a2dc68e5cff91b /target-s390x
parentf70202be535b5601fd02c725dc1d74f3bfc5039c (diff)
downloadqemu-c81b4f896f2768a34d6e65e5f3e588515b10f631.tar.gz
s390x: fix generation of event information crw
Only one channel report word (crw) may be pending if there is event-information pending. This patch introduces a bool-type field 'sei_pending' for the channel subsystem, which indicates whether there are pending events. It is set when event information is made pending and the crw generated, and cleared after the guest has collected all pending event information. A crw is not generated if this flag had already been set. Signed-off-by: Song Shan Gong <gongss@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'target-s390x')
-rw-r--r--target-s390x/ioinst.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/target-s390x/ioinst.c b/target-s390x/ioinst.c
index 57c2d8b226..9a8de6d122 100644
--- a/target-s390x/ioinst.c
+++ b/target-s390x/ioinst.c
@@ -614,6 +614,7 @@ static void ioinst_handle_chsc_sei(ChscReq *req, ChscResp *res)
(*res_flags) |= 0x80;
} else {
(*res_flags) &= ~0x80;
+ css_clear_sei_pending();
}
} else {
res->code = cpu_to_be16(0x0005);