[PATCH kernel] KVM: PPC: Add MMIO emulation for stdx (store doubleword indexed)
Alexey Kardashevskiy
aik at ozlabs.ru
Fri Mar 17 23:11:30 AEDT 2017
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 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),
>
--
Alexey
More information about the Linuxppc-dev
mailing list