summaryrefslogtreecommitdiff
path: root/target-s390x
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2009-12-17 13:56:47 +0100
committerAurelien Jarno <aurelien@aurel32.net>2009-12-18 16:36:37 +0100
commita49668769dd1068d1d60cf7604c5074cdc659ed7 (patch)
treec6e67249c49dfb9c8c24330e63cfff32ff782b3a /target-s390x
parent97d949d9da12311aaf683d4bd1cf2504a966c73d (diff)
downloadqemu-a49668769dd1068d1d60cf7604c5074cdc659ed7.tar.gz
target-s390: Fail on unknown instructions
We were being a bit too nice and didn't give the guest an invalid instruction interrupt. While that works, it's not exactly the fastest thing to do, since now the guest doesn't know that we're not really implementing that instruction, so it continues doing it. We run into this with the set_page_unstable hint instruction. So let's bail out in these cases. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit d7963c43b9646e4dfc69a4253c61e4bab7b661cd)
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 b6aac424db..0992563924 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -405,7 +405,7 @@ static int handle_instruction(CPUState *env, struct kvm_run *run)
unsigned int ipa0 = (run->s390_sieic.ipa & 0xff00);
uint8_t ipa1 = run->s390_sieic.ipa & 0x00ff;
int ipb_code = (run->s390_sieic.ipb & 0x0fff0000) >> 16;
- int r = 0;
+ int r = -1;
dprintf("handle_instruction 0x%x 0x%x\n", run->s390_sieic.ipa, run->s390_sieic.ipb);
switch (ipa0) {