]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
KVM: x86/mmu: Ensure TLBs are flushed when yielding during GFN range zap
authorSean Christopherson <seanjc@google.com>
Sat, 10 Apr 2021 15:12:26 +0000 (11:12 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Apr 2021 06:47:15 +0000 (08:47 +0200)
commita71471ee61aa3f5d50d68af644beafc6142ffe87
tree4020d2ea5b587288ed2a43f9b81a24948ef0498f
parent9fa3f2f8794ead35d37a8d1350463646a0ffa4fb
KVM: x86/mmu: Ensure TLBs are flushed when yielding during GFN range zap

[ Upstream commit a835429cda91621fca915d80672a157b47738afb ]

When flushing a range of GFNs across multiple roots, ensure any pending
flush from a previous root is honored before yielding while walking the
tables of the current root.

Note, kvm_tdp_mmu_zap_gfn_range() now intentionally overwrites its local
"flush" with the result to avoid redundant flushes.  zap_gfn_range()
preserves and return the incoming "flush", unless of course the flush was
performed prior to yielding and no new flush was triggered.

Fixes: 1af4a96025b3 ("KVM: x86/mmu: Yield in TDU MMU iter even if no SPTES changed")
Cc: stable@vger.kernel.org
Reviewed-by: Ben Gardon <bgardon@google.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20210325200119.1359384-2-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/kvm/mmu/tdp_mmu.c