KVM: PPC: Add MMIO emulation for stdx (store doubleword indexed)
This adds missing stdx emulation for emulated MMIO accesses by KVM guests. This allows the Mellanox mlx5_core driver from recent kernels to work when MMIO emulation is enforced by userspace. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
parent
6f63e81bda
commit
91242fd1a3
|
@ -94,6 +94,7 @@
|
||||||
#define OP_31_XOP_TRAP_64 68
|
#define OP_31_XOP_TRAP_64 68
|
||||||
#define OP_31_XOP_DCBF 86
|
#define OP_31_XOP_DCBF 86
|
||||||
#define OP_31_XOP_LBZX 87
|
#define OP_31_XOP_LBZX 87
|
||||||
|
#define OP_31_XOP_STDX 149
|
||||||
#define OP_31_XOP_STWX 151
|
#define OP_31_XOP_STWX 151
|
||||||
#define OP_31_XOP_STBX 215
|
#define OP_31_XOP_STBX 215
|
||||||
#define OP_31_XOP_LBZUX 119
|
#define OP_31_XOP_LBZUX 119
|
||||||
|
|
|
@ -119,6 +119,12 @@ int kvmppc_emulate_loadstore(struct kvm_vcpu *vcpu)
|
||||||
kvmppc_set_gpr(vcpu, ra, vcpu->arch.vaddr_accessed);
|
kvmppc_set_gpr(vcpu, ra, vcpu->arch.vaddr_accessed);
|
||||||
break;
|
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:
|
case OP_31_XOP_STWX:
|
||||||
emulated = kvmppc_handle_store(run, vcpu,
|
emulated = kvmppc_handle_store(run, vcpu,
|
||||||
kvmppc_get_gpr(vcpu, rs),
|
kvmppc_get_gpr(vcpu, rs),
|
||||||
|
|
Loading…
Reference in New Issue