diff options
author | 2018-10-08 23:42:19 +0300 | |
---|---|---|
committer | 2018-10-13 12:00:54 +0200 | |
commit | 327c072187f7af4e4a371b635099f615c14082a7 (patch) | |
tree | d80c3a93d33c4f378634c2e698551ec18163dc9e /tools/testing/selftests/kvm/include/sparsebit.h | |
parent | KVM: nVMX: Use correct VPID02 when emulating L1 INVVPID (diff) | |
download | linux-dev-327c072187f7af4e4a371b635099f615c14082a7.tar.xz linux-dev-327c072187f7af4e4a371b635099f615c14082a7.zip |
KVM: nVMX: Flush linear and combined mappings on VPID02 related flushes
All VPID12s used on a given L1 vCPU is translated to a single
VPID02 (vmx->nested.vpid02 or vmx->vpid). Therefore, on L1->L2 VMEntry,
we need to invalidate linear and combined mappings tagged by
VPID02 in case L1 uses VPID and vmcs12->vpid was changed since
last L1->L2 VMEntry.
However, current code invalidates the wrong mappings as it calls
__vmx_flush_tlb() with invalidate_gpa parameter set to true which will
result in invalidating combined and guest-physical mappings tagged with
active EPTP which is EPTP01.
Similarly, INVVPID emulation have the exact same issue.
Fix both issues by just setting invalidate_gpa parameter to false which
will result in invalidating linear and combined mappings tagged with
given VPID02 as required.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Reviewed-by: Mark Kanda <mark.kanda@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tools/testing/selftests/kvm/include/sparsebit.h')
0 files changed, 0 insertions, 0 deletions