Harden kvm_vcpu_map() usage against memory leaks by yelling if there's already
a valid mapping, and then unmapping the existing mapping before establishing a
new one. To get there, add a CLASS() for local, on-stack usage, to guarantee
the map metadata is zero-initialized (well, so long as the CLASS() is used).
Prompted by 2f2312c422fd ("KVM: nVMX: Put vmcs12 pages if nested VM-Enter fails
due to invalid guest state").
Patch 1 is related in that it's needed to avoid tripping the new WARN.
The PPC change is compile-tested only.
Sean Christopherson (6):
KVM: nVMX: Ensure KVM_REQ_GET_NESTED_STATE_PAGES is cleared on VM-Exit
KVM: nSVM: Add CLASS()es for automagically handling local
kvm_vcpu_map() usage
KVM: nSVM: Use CLASS(kvm_vcpu_map_local) for SMM VMCB mappings
KVM: nVMX: Use CLASS(kvm_vcpu_map_local_readonly) for MSR bitmap
merging
KVM: PPC: Use CLASS(kvm_vcpu_map_local_readonly) for patching dcbz
KVM: Harden kvm_vcpu_map() against double-mapping and thus leaking
references
arch/powerpc/kvm/book3s_pr.c | 9 +++----
arch/x86/kvm/svm/nested.c | 18 ++++++--------
arch/x86/kvm/svm/svm.c | 46 +++++++++++++-----------------------
arch/x86/kvm/vmx/nested.c | 13 +++++-----
include/linux/kvm_host.h | 19 +++++++++++++++
virt/kvm/kvm_main.c | 3 +++
6 files changed, 55 insertions(+), 53 deletions(-)
base-commit: 6bc96b971766fbbbbdd9fb2642cedacaf02da957
--
2.55.0.229.g6434b31f56-goog