diff options
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/kvm/interrupt.c | 19 | ||||
-rw-r--r-- | arch/s390/kvm/kvm-s390.c | 2 |
2 files changed, 19 insertions, 2 deletions
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c index ff1e2f8ef94a..c30615e605ac 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c | |||
@@ -629,10 +629,27 @@ int kvm_s390_inject_vcpu(struct kvm_vcpu *vcpu, | |||
629 | break; | 629 | break; |
630 | case KVM_S390_SIGP_STOP: | 630 | case KVM_S390_SIGP_STOP: |
631 | case KVM_S390_RESTART: | 631 | case KVM_S390_RESTART: |
632 | VCPU_EVENT(vcpu, 3, "inject: type %x", s390int->type); | ||
633 | inti->type = s390int->type; | ||
634 | break; | ||
632 | case KVM_S390_INT_EXTERNAL_CALL: | 635 | case KVM_S390_INT_EXTERNAL_CALL: |
636 | if (s390int->parm & 0xffff0000) { | ||
637 | kfree(inti); | ||
638 | return -EINVAL; | ||
639 | } | ||
640 | VCPU_EVENT(vcpu, 3, "inject: external call source-cpu:%u", | ||
641 | s390int->parm); | ||
642 | inti->type = s390int->type; | ||
643 | inti->extcall.code = s390int->parm; | ||
644 | break; | ||
633 | case KVM_S390_INT_EMERGENCY: | 645 | case KVM_S390_INT_EMERGENCY: |
634 | VCPU_EVENT(vcpu, 3, "inject: type %x", s390int->type); | 646 | if (s390int->parm & 0xffff0000) { |
647 | kfree(inti); | ||
648 | return -EINVAL; | ||
649 | } | ||
650 | VCPU_EVENT(vcpu, 3, "inject: emergency %u\n", s390int->parm); | ||
635 | inti->type = s390int->type; | 651 | inti->type = s390int->type; |
652 | inti->emerg.code = s390int->parm; | ||
636 | break; | 653 | break; |
637 | case KVM_S390_INT_VIRTIO: | 654 | case KVM_S390_INT_VIRTIO: |
638 | case KVM_S390_INT_SERVICE: | 655 | case KVM_S390_INT_SERVICE: |
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index ecced9d18986..38883f0bf27e 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c | |||
@@ -997,7 +997,7 @@ static int __init kvm_s390_init(void) | |||
997 | } | 997 | } |
998 | memcpy(facilities, S390_lowcore.stfle_fac_list, 16); | 998 | memcpy(facilities, S390_lowcore.stfle_fac_list, 16); |
999 | facilities[0] &= 0xff00fff3f47c0000ULL; | 999 | facilities[0] &= 0xff00fff3f47c0000ULL; |
1000 | facilities[1] &= 0x201c000000000000ULL; | 1000 | facilities[1] &= 0x001c000000000000ULL; |
1001 | return 0; | 1001 | return 0; |
1002 | } | 1002 | } |
1003 | 1003 | ||