On Mon, 3 Nov 2014 15:30:33 +0100 Cornelia Huck <cornelia.h...@de.ibm.com> wrote:
> From: Frank Blaschka <blasc...@linux.vnet.ibm.com> > > The second byte of the opcode is encoded in the lowest byte of the ipb > field, not the lowest byte of the ipa field. > > Signed-off-by: Frank Blaschka <blasc...@linux.vnet.ibm.com> > Signed-off-by: Cornelia Huck <cornelia.h...@de.ibm.com> > --- > target-s390x/kvm.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c > index 5b10a25..690cb71 100644 > --- a/target-s390x/kvm.c > +++ b/target-s390x/kvm.c > @@ -827,18 +827,18 @@ static int handle_b9(S390CPU *cpu, struct kvm_run *run, > uint8_t ipa1) > return r; > } > > -static int handle_eb(S390CPU *cpu, struct kvm_run *run, uint8_t ipa1) > +static int handle_eb(S390CPU *cpu, struct kvm_run *run, uint8_t ipbl) > { > int r = 0; > > - switch (ipa1) { > + switch (ipbl) { > case PRIV_EB_SQBS: > /* just inject exception */ > r = -1; > break; > default: > r = -1; > - DPRINTF("KVM: unhandled PRIV: 0xeb%x\n", ipa1); > + DPRINTF("KVM: unhandled PRIV: 0xeb%x\n", ipbl); > break; > } > > @@ -1039,7 +1039,7 @@ static int handle_instruction(S390CPU *cpu, struct > kvm_run *run) > r = handle_b9(cpu, run, ipa1); > break; > case IPA0_EB: > - r = handle_eb(cpu, run, ipa1); > + r = handle_eb(cpu, run, run->s390_sieic.ipb & 0xff); > break; > case IPA0_DIAG: > r = handle_diag(cpu, run, run->s390_sieic.ipb); Looks right! Reviewed-by: Thomas Huth <th...@linux.vnet.ibm.com>