OSDN Git Service

KVM: x86/mmu: Mark SPTEs in disconnected pages as removed
authorBen Gardon <bgardon@google.com>
Tue, 2 Feb 2021 18:57:28 +0000 (10:57 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 4 Feb 2021 10:27:45 +0000 (05:27 -0500)
commite25f0e0cd51bfb1e2e6121373c68f1427266bba7
tree8ca21c3c2bd264f5586a630f654c8fe5cdfc5ec8
parent08f07c800e9d35b59d0c8346333f189160bd67d4
KVM: x86/mmu: Mark SPTEs in disconnected pages as removed

When clearing TDP MMU pages what have been disconnected from the paging
structure root, set the SPTEs to a special non-present value which will
not be overwritten by other threads. This is needed to prevent races in
which a thread is clearing a disconnected page table, but another thread
has already acquired a pointer to that memory and installs a mapping in
an already cleared entry. This can lead to memory leaks and accounting
errors.

Reviewed-by: Peter Feiner <pfeiner@google.com>
Signed-off-by: Ben Gardon <bgardon@google.com>
Message-Id: <20210202185734.1680553-23-bgardon@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/tdp_mmu.c