diff options
Diffstat (limited to 'arch/s390/kvm/interrupt.c')
| -rw-r--r-- | arch/s390/kvm/interrupt.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c index 11230b0db957..2960702b4824 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <asm/lowcore.h> | 13 | #include <asm/lowcore.h> |
| 14 | #include <asm/uaccess.h> | 14 | #include <asm/uaccess.h> |
| 15 | #include <linux/kvm_host.h> | 15 | #include <linux/kvm_host.h> |
| 16 | #include <linux/signal.h> | ||
| 16 | #include "kvm-s390.h" | 17 | #include "kvm-s390.h" |
| 17 | #include "gaccess.h" | 18 | #include "gaccess.h" |
| 18 | 19 | ||
| @@ -246,15 +247,10 @@ static void __do_deliver_interrupt(struct kvm_vcpu *vcpu, | |||
| 246 | default: | 247 | default: |
| 247 | BUG(); | 248 | BUG(); |
| 248 | } | 249 | } |
| 249 | |||
| 250 | if (exception) { | 250 | if (exception) { |
| 251 | VCPU_EVENT(vcpu, 1, "%s", "program exception while delivering" | 251 | printk("kvm: The guest lowcore is not mapped during interrupt " |
| 252 | " interrupt"); | 252 | "delivery, killing userspace\n"); |
| 253 | kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); | 253 | do_exit(SIGKILL); |
| 254 | if (inti->type == KVM_S390_PROGRAM_INT) { | ||
| 255 | printk(KERN_WARNING "kvm: recursive program check\n"); | ||
| 256 | BUG(); | ||
| 257 | } | ||
| 258 | } | 254 | } |
| 259 | } | 255 | } |
| 260 | 256 | ||
| @@ -277,14 +273,11 @@ static int __try_deliver_ckc_interrupt(struct kvm_vcpu *vcpu) | |||
| 277 | __LC_EXT_NEW_PSW, sizeof(psw_t)); | 273 | __LC_EXT_NEW_PSW, sizeof(psw_t)); |
| 278 | if (rc == -EFAULT) | 274 | if (rc == -EFAULT) |
| 279 | exception = 1; | 275 | exception = 1; |
| 280 | |||
| 281 | if (exception) { | 276 | if (exception) { |
| 282 | VCPU_EVENT(vcpu, 1, "%s", "program exception while delivering" \ | 277 | printk("kvm: The guest lowcore is not mapped during interrupt " |
| 283 | " ckc interrupt"); | 278 | "delivery, killing userspace\n"); |
| 284 | kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING); | 279 | do_exit(SIGKILL); |
| 285 | return 0; | ||
| 286 | } | 280 | } |
| 287 | |||
| 288 | return 1; | 281 | return 1; |
| 289 | } | 282 | } |
| 290 | 283 | ||
