diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-06-24 23:03:48 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-05 08:25:40 +0200 |
commit | 4b4f7280d7fd1feeff134c2cf2db32fd583b6c29 (patch) | |
tree | f10e83d5f2708cc0045a177cc4cdd68a0ff11762 /arch/x86/kernel/acpi/realmode/wakeup.h | |
parent | b8a0b6ccf2ba2519ace65d782b41ee91bf3c3778 (diff) | |
download | op-kernel-dev-4b4f7280d7fd1feeff134c2cf2db32fd583b6c29.zip op-kernel-dev-4b4f7280d7fd1feeff134c2cf2db32fd583b6c29.tar.gz |
x86 ACPI: normalize segment descriptor register on resume
Some Dell laptops enter resume with apparent garbage in the segment
descriptor registers (almost certainly the result of a botched
transition from protected to real mode.) The only way to clean that
up is to enter protected mode ourselves and clean out the descriptor
registers.
This fixes resume on Dell XPS M1210 and Dell D620.
Reference: http://bugzilla.kernel.org/show_bug.cgi?id=10927
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: pm list <linux-pm@lists.linux-foundation.org>
Cc: Len Brown <lenb@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Tested-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/acpi/realmode/wakeup.h')
-rw-r--r-- | arch/x86/kernel/acpi/realmode/wakeup.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/kernel/acpi/realmode/wakeup.h b/arch/x86/kernel/acpi/realmode/wakeup.h index ef8166f..69d38d0 100644 --- a/arch/x86/kernel/acpi/realmode/wakeup.h +++ b/arch/x86/kernel/acpi/realmode/wakeup.h @@ -24,6 +24,11 @@ struct wakeup_header { u32 realmode_flags; u32 real_magic; u16 trampoline_segment; /* segment with trampoline code, 64-bit only */ + u8 _pad1; + u8 wakeup_jmp; + u16 wakeup_jmp_off; + u16 wakeup_jmp_seg; + u64 wakeup_gdt[3]; u32 signature; /* To check we have correct structure */ } __attribute__((__packed__)); |