From 4a87c5b1f4773364039c51cca84adad701ca3d44 Mon Sep 17 00:00:00 2001 From: Christian Ehrhardt Date: Sun, 24 Jul 2011 10:48:31 +0200 Subject: [PATCH] --- yaml --- r: 258159 b: refs/heads/master c: 8bb3a2ebcf2a406a60d04f5a8756ea936b7f0bf3 h: refs/heads/master i: 258157: 90386969f52f85a575eef4d03af6a2f4d40271b7 258155: 42b929172bab4ed157257bff8077625f4ec75fae 258151: dcd30c28261b1318f04601ab7c4be101e931c8c0 258143: 28b4e8a731b359af60e6fc206090f519f4bcc54b v: v3 --- [refs] | 2 +- trunk/arch/s390/include/asm/kvm_host.h | 5 +++++ trunk/arch/s390/kvm/interrupt.c | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 23aedabe45b2..bc8d23af8279 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cadfce72778e9417baff117bb563a1c2f8fef97b +refs/heads/master: 8bb3a2ebcf2a406a60d04f5a8756ea936b7f0bf3 diff --git a/trunk/arch/s390/include/asm/kvm_host.h b/trunk/arch/s390/include/asm/kvm_host.h index e5d082c4f3aa..00ff00dfb24c 100644 --- a/trunk/arch/s390/include/asm/kvm_host.h +++ b/trunk/arch/s390/include/asm/kvm_host.h @@ -174,6 +174,10 @@ struct kvm_s390_prefix_info { __u32 address; }; +struct kvm_s390_emerg_info { + __u16 code; +}; + struct kvm_s390_interrupt_info { struct list_head list; u64 type; @@ -181,6 +185,7 @@ struct kvm_s390_interrupt_info { struct kvm_s390_io_info io; struct kvm_s390_ext_info ext; struct kvm_s390_pgm_info pgm; + struct kvm_s390_emerg_info emerg; struct kvm_s390_prefix_info prefix; }; }; diff --git a/trunk/arch/s390/kvm/interrupt.c b/trunk/arch/s390/kvm/interrupt.c index 35c21bf910c5..c9aeb4b4d0b8 100644 --- a/trunk/arch/s390/kvm/interrupt.c +++ b/trunk/arch/s390/kvm/interrupt.c @@ -128,6 +128,10 @@ static void __do_deliver_interrupt(struct kvm_vcpu *vcpu, if (rc == -EFAULT) exception = 1; + rc = put_guest_u16(vcpu, __LC_CPU_ADDRESS, inti->emerg.code); + if (rc == -EFAULT) + exception = 1; + rc = copy_to_guest(vcpu, __LC_EXT_OLD_PSW, &vcpu->arch.sie_block->gpsw, sizeof(psw_t)); if (rc == -EFAULT)