Patch "KVM: x86: reset pdptrs_from_userspace when exiting smm" has been added to the 5.14-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: reset pdptrs_from_userspace when exiting smm

to the 5.14-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-reset-pdptrs_from_userspace-when-exiting-smm.patch
and it can be found in the queue-5.14 subdirectory.

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



commit fa9f348a1816c17c93b90437895d0bb27c7fc971
Author: Maxim Levitsky <mlevitsk@xxxxxxxxxx>
Date:   Mon Sep 13 17:09:50 2021 +0300

    KVM: x86: reset pdptrs_from_userspace when exiting smm
    
    [ Upstream commit 37687c403a641f251cb2ef2e7830b88aa0647ba9 ]
    
    When exiting SMM, pdpts are loaded again from the guest memory.
    
    This fixes a theoretical bug, when exit from SMM triggers entry to the
    nested guest which re-uses some of the migration
    code which uses this flag as a workaround for a legacy userspace.
    
    Signed-off-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx>
    Message-Id: <20210913140954.165665-4-mlevitsk@xxxxxxxxxx>
    Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 6d5d6e93f5c4..07d3d8aa50a9 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -7659,6 +7659,13 @@ static void kvm_smm_changed(struct kvm_vcpu *vcpu, bool entering_smm)
 
 		/* Process a latched INIT or SMI, if any.  */
 		kvm_make_request(KVM_REQ_EVENT, vcpu);
+
+		/*
+		 * Even if KVM_SET_SREGS2 loaded PDPTRs out of band,
+		 * on SMM exit we still need to reload them from
+		 * guest memory
+		 */
+		vcpu->arch.pdptrs_from_userspace = false;
 	}
 
 	kvm_mmu_reset_context(vcpu);



[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