[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