diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2017-05-24 14:06:12 +0200 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2017-06-06 10:17:11 +0200 |
commit | 4e19b57b0e335fdaf2cf3f056b327ee6717dec7e (patch) | |
tree | e74493511da2ebdedbaa7dd62c948968b265f5a2 /target/s390x/ioinst.c | |
parent | 8ed179c937830143dc0e03daac30a55272ed89e3 (diff) |
s390x/css: fence off MIDA
MIDA (modified indirect data addressing) is an optional facility, and
we (currently) don't support it. Let's post an operand exception if
the guest tries to set it in the orb and a channel program check
if it is set in a ccw, as specified in the Principles of Operation.
Reviewed-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'target/s390x/ioinst.c')
-rw-r--r-- | target/s390x/ioinst.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/target/s390x/ioinst.c b/target/s390x/ioinst.c index 62a777100c..d5e6b8066b 100644 --- a/target/s390x/ioinst.c +++ b/target/s390x/ioinst.c @@ -201,6 +201,10 @@ static int ioinst_orb_valid(ORB *orb) (orb->ctrl1 & ORB_CTRL1_MASK_INVALID)) { return 0; } + /* We don't support MIDA. */ + if (orb->ctrl1 & ORB_CTRL1_MASK_MIDAW) { + return 0; + } if ((orb->cpa & HIGH_ORDER_BIT) != 0) { return 0; } |