KVM: x86/mmu: Don't put invalid SPs back on the list of active pages
authorSean Christopherson <sean.j.christopherson@intel.com>
Tue, 23 Jun 2020 19:35:39 +0000 (12:35 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 8 Jul 2020 20:21:51 +0000 (16:21 -0400)
commitf95eec9bed76d42194c23153cb1cc8f186bf91cb
treef6bf50e440bde696a5d27b98b32887db2e221069
parentfb58a9c345f645f1774dcf6a36fda169253008ae
KVM: x86/mmu: Don't put invalid SPs back on the list of active pages

Delete a shadow page from the invalidation list instead of throwing it
back on the list of active pages when it's a root shadow page with
active users.  Invalid active root pages will be explicitly freed by
mmu_free_root_page() when the root_count hits zero, i.e. they don't need
to be put on the active list to avoid leakage.

Use sp->role.invalid to detect that a shadow page has already been
zapped, i.e. is not on a list.

WARN if an invalid page is encountered when zapping pages, as it should
now be impossible.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Message-Id: <20200623193542.7554-2-sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/mmu.c