Skip to contentSkip to conversation

FAILED: patch "[PATCH] KVM: x86: emulator: update the emulation mode after rsm" failed to apply to 5.4-stable tree

PATCH [email protected] 1 participant 1 message Nov 7, 2022

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

Possible dependencies:

055f37f84e30 ("KVM: x86: emulator: update the emulation mode after rsm") 0128116550ac ("KVM: x86: Drop .post_leave_smm(), i.e. the manual post-RSM MMU reset") fa75e08bbe4f ("KVM: x86: Invoke kvm_smm_changed() immediately after clearing SMM flag") edce46548b70 ("KVM: x86: Replace .set_hflags() with dedicated .exiting_smm() helper") 25b17226cd9a ("KVM: x86: Emulate triple fault shutdown if RSM emulation fails") 78fcb2c91adf ("KVM: x86: Immediately reset the MMU context when the SMM flag is cleared")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 055f37f84e304e59c046d1accfd8f08462f52c4c Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <[email protected]>
Date: Tue, 25 Oct 2022 15:47:30 +0300
Subject: [PATCH] KVM: x86: emulator: update the emulation mode after rsm

Update the emulation mode after RSM so that RIP will be correctly written back, because the RSM instruction can switch the CPU mode from 32 bit (or less) to 64 bit.

This fixes a guest crash in case the #SMI is received while the guest runs a code from an address > 32 bit.

Message-Id: <[email protected]>

arch/x86/kvm/emulate.c +1 -1
index e5522a23d985..33385ebae100 100644
@@ -2662,7 +2662,7 @@ static int em_rsm(struct x86_emulate_ctxt *ctxt)
 	 * those side effects need to be explicitly handled for both success
 	 * and shutdown.
 	 */
-	return X86EMUL_CONTINUE;
+	return emulator_recalc_and_set_mode(ctxt);
 
 emulate_shutdown:
 	ctxt->ops->triple_fault(ctxt);