From 640dbbccad5e8be64b5fcf00e8833c948d4a6c50 Mon Sep 17 00:00:00 2001 From: "Jason J. Herne" Date: Tue, 2 Oct 2012 16:25:36 +0200 Subject: [PATCH] --- yaml --- r: 343439 b: refs/heads/master c: 82a1273713df37375a75d6a700deef70c0d21360 h: refs/heads/master i: 343437: 73d9c973b1e02863499e64d0494dff42cedafe89 343435: 50c4371d3fe8ced406f73ac4a47a9d23e9578bab 343431: 75d01a87e02b6876d63be1996cd427e519751dc4 343423: 2d9d1eefec5e3001c6f8782facf842f5ef9ed47e v: v3 --- [refs] | 2 +- trunk/arch/s390/kvm/interrupt.c | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 0707d27e18f8..8b9639f21b80 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d151f63f20133aef9dbda209faddebcddbfccf31 +refs/heads/master: 82a1273713df37375a75d6a700deef70c0d21360 diff --git a/trunk/arch/s390/kvm/interrupt.c b/trunk/arch/s390/kvm/interrupt.c index ff1e2f8ef94a..c30615e605ac 100644 --- a/trunk/arch/s390/kvm/interrupt.c +++ b/trunk/arch/s390/kvm/interrupt.c @@ -629,10 +629,27 @@ int kvm_s390_inject_vcpu(struct kvm_vcpu *vcpu, break; case KVM_S390_SIGP_STOP: case KVM_S390_RESTART: + VCPU_EVENT(vcpu, 3, "inject: type %x", s390int->type); + inti->type = s390int->type; + break; case KVM_S390_INT_EXTERNAL_CALL: + if (s390int->parm & 0xffff0000) { + kfree(inti); + return -EINVAL; + } + VCPU_EVENT(vcpu, 3, "inject: external call source-cpu:%u", + s390int->parm); + inti->type = s390int->type; + inti->extcall.code = s390int->parm; + break; case KVM_S390_INT_EMERGENCY: - VCPU_EVENT(vcpu, 3, "inject: type %x", s390int->type); + if (s390int->parm & 0xffff0000) { + kfree(inti); + return -EINVAL; + } + VCPU_EVENT(vcpu, 3, "inject: emergency %u\n", s390int->parm); inti->type = s390int->type; + inti->emerg.code = s390int->parm; break; case KVM_S390_INT_VIRTIO: case KVM_S390_INT_SERVICE: