From: Pierre Morel Date: Wed, 15 Jul 2015 14:16:20 +0000 (+0200) Subject: s390x/css: handle ccw-0 TIC correctly X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=fde8206b8061f808c880709c2ac26a645b11c211;p=qmiga%2Fqemu.git s390x/css: handle ccw-0 TIC correctly In CCW-0 format TIC command 4 highest bits are ignored in the subchannel. In CCW-1 format the TIC command 4 highest bits must be 0. To convert TIC from CCW-0 to CCW-1 we clear the 4 highest bits to guarantee compatibility. Signed-off-by: Pierre Morel Reviewed-by: Cornelia Huck Signed-off-by: Cornelia Huck --- diff --git a/hw/s390x/css.c b/hw/s390x/css.c index 5df450e00b..2c0782cc6a 100644 --- a/hw/s390x/css.c +++ b/hw/s390x/css.c @@ -261,6 +261,9 @@ static CCW1 copy_ccw_from_guest(hwaddr addr, bool fmt1) ret.flags = tmp0.flags; ret.count = be16_to_cpu(tmp0.count); ret.cda = be16_to_cpu(tmp0.cda1) | (tmp0.cda0 << 16); + if ((ret.cmd_code & 0x0f) == CCW_CMD_TIC) { + ret.cmd_code &= 0x0f; + } } return ret; }