From be7ab80f87e424bc52756a71327e6b20b85a5708 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Fri, 25 Jul 2008 15:53:12 +0200 Subject: [PATCH] --- yaml --- r: 106539 b: refs/heads/master c: 5a00a5e7a3e013b2323f87c1b69ff9557eae5ec9 h: refs/heads/master i: 106537: 77fec722defcd2cfeb5114a9c5cc96bfe3ded28d 106535: f32c1bdaae4403434e62820cec93622e9048c68f v: v3 --- [refs] | 2 +- trunk/arch/s390/kvm/intercept.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index a11ab5e0e12d..57badbd81036 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f5e10b09a5f8fc40666c95fe0cd6bcc2b8f11437 +refs/heads/master: 5a00a5e7a3e013b2323f87c1b69ff9557eae5ec9 diff --git a/trunk/arch/s390/kvm/intercept.c b/trunk/arch/s390/kvm/intercept.c index f94da68a5c22..61236102203e 100644 --- a/trunk/arch/s390/kvm/intercept.c +++ b/trunk/arch/s390/kvm/intercept.c @@ -38,6 +38,9 @@ static int handle_lctlg(struct kvm_vcpu *vcpu) if (base2) useraddr += vcpu->arch.guest_gprs[base2]; + if (useraddr & 7) + return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION); + reg = reg1; VCPU_EVENT(vcpu, 5, "lctlg r1:%x, r3:%x,b2:%x,d2:%x", reg1, reg3, base2, @@ -74,6 +77,9 @@ static int handle_lctl(struct kvm_vcpu *vcpu) if (base2) useraddr += vcpu->arch.guest_gprs[base2]; + if (useraddr & 3) + return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION); + VCPU_EVENT(vcpu, 5, "lctl r1:%x, r3:%x,b2:%x,d2:%x", reg1, reg3, base2, disp2);