summaryrefslogtreecommitdiff
path: root/target-s390x
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2014-12-18 10:04:17 +0100
committerCornelia Huck <cornelia.huck@de.ibm.com>2015-02-03 13:42:40 +0100
commit68540b1a1b505d9578699b03fe0b5da716a21dcc (patch)
tree94a3790befc130bd220762e52b5d62e6f9f9cf3c /target-s390x
parent20dd25bb67a51a4a57092b6381a6d4b0e64e2153 (diff)
s390x/kvm: unknown DIAGNOSE code should give a specification exception
As described in CP programming services an unimplemented DIAGNOSE function should return a specification exception. Today we give the guest an operation exception. As both exception types are suppressing and Linux as a guest does not care about the type of program check in its exception table handler as long as both types have the same kind of error handling (nullifying, terminating, suppressing etc.) this was unnoticed. Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'target-s390x')
-rw-r--r--target-s390x/kvm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index 6bf2719c43..6f2d5b4924 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -1091,7 +1091,7 @@ static int handle_diag(S390CPU *cpu, struct kvm_run *run, uint32_t ipb)
break;
default:
DPRINTF("KVM: unknown DIAG: 0x%x\n", func_code);
- r = -1;
+ enter_pgmcheck(cpu, PGM_SPECIFICATION);
break;
}