Patch "KVM: x86/mmu: preserve pending TLB flush across calls to kvm_tdp_mmu_zap_sp" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    KVM: x86/mmu: preserve pending TLB flush across calls to kvm_tdp_mmu_zap_sp

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     kvm-x86-mmu-preserve-pending-tlb-flush-across-calls-.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 9267ff2d1a3a020f8cc27bcb83edeb460160c7fa
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date:   Sat Apr 10 11:12:29 2021 -0400

    KVM: x86/mmu: preserve pending TLB flush across calls to kvm_tdp_mmu_zap_sp
    
    [ Upstream commit 315f02c60d9425b38eb8ad7f21b8a35e40db23f9 ]
    
    Right now, if a call to kvm_tdp_mmu_zap_sp returns false, the caller
    will skip the TLB flush, which is wrong.  There are two ways to fix
    it:
    
    - since kvm_tdp_mmu_zap_sp will not yield and therefore will not flush
      the TLB itself, we could change the call to kvm_tdp_mmu_zap_sp to
      use "flush |= ..."
    
    - or we can chain the flush argument through kvm_tdp_mmu_zap_sp down
      to __kvm_tdp_mmu_zap_gfn_range.  Note that kvm_tdp_mmu_zap_sp will
      neither yield nor flush, so flush would never go from true to
      false.
    
    This patch does the former to simplify application to stable kernels,
    and to make it further clearer that kvm_tdp_mmu_zap_sp will not flush.
    
    Cc: seanjc@xxxxxxxxxx
    Fixes: 048f49809c526 ("KVM: x86/mmu: Ensure TLBs are flushed for TDP MMU during NX zapping")
    Cc: <stable@xxxxxxxxxxxxxxx> # 5.10.x: 048f49809c: KVM: x86/mmu: Ensure TLBs are flushed for TDP MMU during NX zapping
    Cc: <stable@xxxxxxxxxxxxxxx> # 5.10.x: 33a3164161: KVM: x86/mmu: Don't allow TDP MMU to yield when recovering NX pages
    Cc: <stable@xxxxxxxxxxxxxxx>
    Reviewed-by: Sean Christopherson <seanjc@xxxxxxxxxx>
    Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index defdd717e9da..15717a28b212 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -5994,7 +5994,7 @@ static void kvm_recover_nx_lpages(struct kvm *kvm)
 				      lpage_disallowed_link);
 		WARN_ON_ONCE(!sp->lpage_disallowed);
 		if (sp->tdp_mmu_page) {
-			flush = kvm_tdp_mmu_zap_sp(kvm, sp);
+			flush |= kvm_tdp_mmu_zap_sp(kvm, sp);
 		} else {
 			kvm_mmu_prepare_zap_page(kvm, sp, &invalid_list);
 			WARN_ON_ONCE(sp->lpage_disallowed);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux