[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen staging-4.11] x86: Restore IA32_MISC_ENABLE on wakeup
commit 4e95d85b991f5d7e9a881e176395340a4441b44b Author: MichaÅ? Kowalczyk <mkow@xxxxxxxxxxxxxxxxxxxxxx> AuthorDate: Mon Sep 23 14:38:26 2019 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Sep 23 14:38:26 2019 +0200 x86: Restore IA32_MISC_ENABLE on wakeup Code in intel.c:early_init_intel() modifies IA32_MISC_ENABLE MSR. Those modifications must be restored after resuming from S3 (see e.g. Linux wakeup code), otherwise bad things may happen (e.g. wakeup code may cause #GP when trying to set IA32_EFER.NXE [1]). This bug was noticed on a ThinkPad x230 with NX disabled in the BIOS: Xen could correctly boot, but crashed when resuming from suspend. Applying this patch fixed the problem. [1] Intel SDM vol 3: "If the execute-disable capability is not available, a write to set IA32_EFER.NXE produces a #GP exception." Signed-off-by: MichaÅ? Kowalczyk <mkow@xxxxxxxxxxxxxxxxxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> master commit: c3cfa5b3084d71bccd8360d044bea813688b587c master date: 2019-08-19 15:07:34 +0100 --- xen/arch/x86/boot/wakeup.S | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S index f9632eef95..4320bb4666 100644 --- a/xen/arch/x86/boot/wakeup.S +++ b/xen/arch/x86/boot/wakeup.S @@ -137,6 +137,21 @@ wakeup_32: add bootsym_rel(trampoline_xen_phys_start,4,%eax) mov %eax,%cr3 + /* Reapply IA32_MISC_ENABLE modifications from early_init_intel(). */ + mov bootsym_rel(trampoline_misc_enable_off, 4, %esi) + mov bootsym_rel(trampoline_misc_enable_off + 4, 4, %edi) + mov %esi, %eax + or %edi, %eax + jz 1f + mov $MSR_IA32_MISC_ENABLE, %ecx + rdmsr + not %esi + not %edi + and %esi, %eax + and %edi, %edx + wrmsr +1: + /* Will cpuid feature change after resume? */ /* Set up EFER (Extended Feature Enable Register). */ mov bootsym_rel(cpuid_ext_features,4,%edi) -- generated by git-patchbot for /home/xen/git/xen.git#staging-4.11 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |