summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/acpi/realmode/wakeup.h
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-06-24 23:03:48 +0200
committerIngo Molnar <mingo@elte.hu>2008-07-05 08:25:40 +0200
commit4b4f7280d7fd1feeff134c2cf2db32fd583b6c29 (patch)
treef10e83d5f2708cc0045a177cc4cdd68a0ff11762 /arch/x86/kernel/acpi/realmode/wakeup.h
parentb8a0b6ccf2ba2519ace65d782b41ee91bf3c3778 (diff)
downloadop-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.h5
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__));
OpenPOWER on IntegriCloud