[PATCH V2] powerpc/kvm/book3s_hv: propagate H_SET_MODE_RESOURCE_LE to the host
Laurent Dufour
ldufour at linux.vnet.ibm.com
Fri Sep 27 23:59:30 EST 2013
Follow-up to Anton's H_SET_MODE patch, the host should be taken aware of
guest endianess change.
The hcall H_SET_MODE/H_SET_MODE_RESOURCE_LE is processed in kvm and then
propagated to the host.
v2: taking in account the Paul Mackerras's comment, using H_TOO_HARD to
propagate only H_SET_MODE_RESOURCE_LE to the host.
Signed-off-by: Laurent Dufour <ldufour at linux.vnet.ibm.com>
---
arch/powerpc/kvm/book3s_hv.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 998cad3..be0af39 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -523,14 +523,14 @@ static int kvmppc_h_set_mode(struct kvm_vcpu *vcpu, unsigned long mflags,
kvm_for_each_vcpu(n, v, kvm)
v->arch.intr_msr &= ~MSR_LE;
kick_all_cpus_sync();
- return H_SUCCESS;
+ return H_TOO_HARD; /* propagating to the host */
case 1:
kvm->arch.lpcr |= LPCR_ILE;
kvm_for_each_vcpu(n, v, kvm)
v->arch.intr_msr |= MSR_LE;
kick_all_cpus_sync();
- return H_SUCCESS;
+ return H_TOO_HARD; /* propagating to the host */
default:
return H_UNSUPPORTED_FLAG_START;
@@ -599,6 +599,8 @@ int kvmppc_pseries_do_hcall(struct kvm_vcpu *vcpu)
kvmppc_get_gpr(vcpu, 5),
kvmppc_get_gpr(vcpu, 6),
kvmppc_get_gpr(vcpu, 7));
+ if (ret == H_TOO_HARD)
+ return RESUME_HOST;
break;
case H_XIRR:
More information about the Linuxppc-dev
mailing list