| From f3689e3f17f064fd4cd5f0cb01ae2395c94f39d9 Mon Sep 17 00:00:00 2001 |
| From: Sean Christopherson <sean.j.christopherson@intel.com> |
| Date: Fri, 25 Jan 2019 07:40:52 -0800 |
| Subject: KVM: VMX: Save RSI to an unused output in the vCPU-run asm blob |
| |
| From: Sean Christopherson <sean.j.christopherson@intel.com> |
| |
| commit f3689e3f17f064fd4cd5f0cb01ae2395c94f39d9 upstream. |
| |
| RSI is clobbered by the vCPU-run asm blob, but it's not marked as such, |
| probably because GCC doesn't let you mark inputs as clobbered. "Save" |
| RSI to a dummy output so that GCC recognizes it as being clobbered. |
| |
| Fixes: 773e8a0425c9 ("x86/kvm: use Enlightened VMCS when running on Hyper-V") |
| Reviewed-by: Jim Mattson <jmattson@google.com> |
| Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> |
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/x86/kvm/vmx/vmx.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/x86/kvm/vmx/vmx.c |
| +++ b/arch/x86/kvm/vmx/vmx.c |
| @@ -6465,7 +6465,7 @@ static void __vmx_vcpu_run(struct kvm_vc |
| "xor %%edi, %%edi \n\t" |
| "xor %%ebp, %%ebp \n\t" |
| "pop %%" _ASM_BP "; pop %%" _ASM_DX " \n\t" |
| - : ASM_CALL_CONSTRAINT |
| + : ASM_CALL_CONSTRAINT, "=S"((int){0}) |
| : "c"(vmx), "d"((unsigned long)HOST_RSP), "S"(evmcs_rsp), |
| [launched]"i"(offsetof(struct vcpu_vmx, __launched)), |
| [fail]"i"(offsetof(struct vcpu_vmx, fail)), |