[PATCH kernel] KVM: PPC: Add MMIO emulation for stdx (store doubleword indexed)
Benjamin Herrenschmidt
benh at au1.ibm.com
Sun Mar 19 16:40:38 AEDT 2017
On Fri, 2017-03-17 at 23:11 +1100, Alexey Kardashevskiy wrote:
> 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?
Yes.
Do we also do the more "classic" ld/std ?
Cheers,
Ben.
>
> >
> > Signed-off-by: Alexey Kardashevskiy <aik at ozlabs.ru>
> > ---
> > 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),
> >
>
>
More information about the Linuxppc-dev
mailing list