| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Jim Mattson <jmattson@google.com> |
| Date: Thu, 1 Jun 2017 12:44:46 -0700 |
| Subject: KVM: nVMX: Update vmcs12->guest_linear_address on nested VM-exit |
| |
| From: Jim Mattson <jmattson@google.com> |
| |
| |
| [ Upstream commit d281e13b0bfe745a21061a194e386a949784393f ] |
| |
| The guest-linear address field is set for VM exits due to attempts to |
| execute LMSW with a memory operand and VM exits due to attempts to |
| execute INS or OUTS for which the relevant segment is usable, |
| regardless of whether or not EPT is in use. |
| |
| Fixes: 119a9c01a5922 ("KVM: nVMX: pass valid guest linear-address to the L1") |
| Signed-off-by: Jim Mattson <jmattson@google.com> |
| Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/x86/kvm/vmx.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| --- a/arch/x86/kvm/vmx.c |
| +++ b/arch/x86/kvm/vmx.c |
| @@ -10664,8 +10664,7 @@ static void prepare_vmcs12(struct kvm_vc |
| vmcs12->guest_pdptr3 = vmcs_read64(GUEST_PDPTR3); |
| } |
| |
| - if (nested_cpu_has_ept(vmcs12)) |
| - vmcs12->guest_linear_address = vmcs_readl(GUEST_LINEAR_ADDRESS); |
| + vmcs12->guest_linear_address = vmcs_readl(GUEST_LINEAR_ADDRESS); |
| |
| if (nested_cpu_has_vid(vmcs12)) |
| vmcs12->guest_intr_status = vmcs_read16(GUEST_INTR_STATUS); |