On 17/03/17 19:31, Alexey Kardashevskiy wrote: > This adds missing stdx emulation which allow Mellanox driver from > recent kernels work when MMIO emulation is enforced in the userspace. btw what would its load counterpart? Load Doubleword Indexed - ldx RT,RA,RB? > > Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> > --- > arch/powerpc/include/asm/ppc-opcode.h | 1 + > arch/powerpc/kvm/emulate_loadstore.c | 6 ++++++ > 2 files changed, 7 insertions(+) > > diff --git a/arch/powerpc/include/asm/ppc-opcode.h b/arch/powerpc/include/asm/ppc-opcode.h > index e7d6d86563ee..ca1bbe49590b 100644 > --- a/arch/powerpc/include/asm/ppc-opcode.h > +++ b/arch/powerpc/include/asm/ppc-opcode.h > @@ -92,6 +92,7 @@ > #define OP_31_XOP_TRAP_64 68 > #define OP_31_XOP_DCBF 86 > #define OP_31_XOP_LBZX 87 > +#define OP_31_XOP_STDX 149 > #define OP_31_XOP_STWX 151 > #define OP_31_XOP_STBX 215 > #define OP_31_XOP_LBZUX 119 > diff --git a/arch/powerpc/kvm/emulate_loadstore.c b/arch/powerpc/kvm/emulate_loadstore.c > index 6d3c0ee1d744..9fdbeb8ea86c 100644 > --- a/arch/powerpc/kvm/emulate_loadstore.c > +++ b/arch/powerpc/kvm/emulate_loadstore.c > @@ -82,6 +82,12 @@ int kvmppc_emulate_loadstore(struct kvm_vcpu *vcpu) > kvmppc_set_gpr(vcpu, ra, vcpu->arch.vaddr_accessed); > break; > > + case OP_31_XOP_STDX: > + emulated = kvmppc_handle_store(run, vcpu, > + kvmppc_get_gpr(vcpu, rs), > + 8, 1); > + break; > + > case OP_31_XOP_STWX: > emulated = kvmppc_handle_store(run, vcpu, > kvmppc_get_gpr(vcpu, rs), > -- Alexey -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html