Re: [PATCH] powerpc/kvmbook3s_hv: propagate H_SET_MODE to the host
From: Paul Mackerras <hidden>
Date: 2013-09-25 22:31:18
On Wed, Sep 25, 2013 at 02:10:27PM +0200, Laurent Dufour wrote:
quoted hunk ↗ jump to hunk
Follow-up to Anton's H_SET_MODE patch, the host should be taken aware of guest endianess change. The hcall H_SET_MODE is processed in kvm then in the host. Signed-off-by: Laurent Dufour <redacted> --- arch/powerpc/kvm/book3s_hv.c | 8 ++++++++ 1 file changed, 8 insertions(+)diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 998cad3..4a47c74 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c@@ -599,6 +599,14 @@ 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 the hcall succeeded, we propagate it to the host. + * This way, it will be aware of the endianess's change too. + * The assumption is made that the hcall will succeed in the + * host. + */ + if (ret == H_SUCCESS) + return RESUME_HOST; break;
The problem with this is that H_SET_MODE isn't just used for setting endianness; it also does breakpoint setting (DAWR/X and CIABR), which might happen very frequently, so we don't want them being punted up to userspace. Paul.