9fde3ef1c6
so that plain Debian crda + wireless-regdb can work, alternatively we could disable CRDA and bake in the regdb directly in the kernel, using the CFG80211_INTERNAL_REGDB KConfig. Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
39 lines
1.3 KiB
Diff
39 lines
1.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Maxim Levitsky <mlevitsk@redhat.com>
|
|
Date: Wed, 3 Aug 2022 18:50:02 +0300
|
|
Subject: [PATCH] KVM: x86: emulator: update the emulation mode after rsm
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
This ensures 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.
|
|
|
|
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
|
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
|
---
|
|
arch/x86/kvm/emulate.c | 5 +++++
|
|
1 file changed, 5 insertions(+)
|
|
|
|
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
|
|
index 4a43261d25a2..4f7f5117ec7a 100644
|
|
--- a/arch/x86/kvm/emulate.c
|
|
+++ b/arch/x86/kvm/emulate.c
|
|
@@ -2654,6 +2654,11 @@ static int em_rsm(struct x86_emulate_ctxt *ctxt)
|
|
if (ret != X86EMUL_CONTINUE)
|
|
goto emulate_shutdown;
|
|
|
|
+
|
|
+ ret = emulator_recalc_and_set_mode(ctxt);
|
|
+ if (ret != X86EMUL_CONTINUE)
|
|
+ goto emulate_shutdown;
|
|
+
|
|
/*
|
|
* Note, the ctxt->ops callbacks are responsible for handling side
|
|
* effects when writing MSRs and CRs, e.g. MMU context resets, CPUID
|