aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-07-15 11:41:43 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-15 11:41:43 -0400
commit1dc60c53d36b08f361e1a2767c41196acce96d08 (patch)
tree35966ad2c2465e6f722d199e4b1799fb4c6f2b46
parent8d2567a620ae8c24968a2bdc1c906c724fac1f6a (diff)
parent3f1c38723eb467d34d704d0ee6e7b796ba4981ee (diff)
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Fix compile error with CONFIG_AS_CFI=n Documentation: document debugpat commandline option x86: sanitize Kconfig x86, suspend, acpi: correct and add comments about Big Real Mode x86, suspend, acpi: enter Big Real Mode Fixed trivial conflict in include/asm-x86/dwarf2.h due to just using different names for "cfi_ignore" (vs "__cfi_ignore") macro.
-rw-r--r--Documentation/kernel-parameters.txt2
-rw-r--r--arch/x86/Kconfig22
-rw-r--r--arch/x86/kernel/acpi/sleep.c30
-rw-r--r--include/asm-x86/dwarf2.h30
4 files changed, 50 insertions, 34 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index b3a5aad7e629..681d6152e003 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -571,6 +571,8 @@ and is between 256 and 4096 characters. It is defined in the file
571 571
572 debug_objects [KNL] Enable object debugging 572 debug_objects [KNL] Enable object debugging
573 573
574 debugpat [X86] Enable PAT debugging
575
574 decnet.addr= [HW,NET] 576 decnet.addr= [HW,NET]
575 Format: <area>[,<node>] 577 Format: <area>[,<node>]
576 See also Documentation/networking/decnet.txt. 578 See also Documentation/networking/decnet.txt.
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 6958d6bcaf70..2642b4bf41b9 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -447,7 +447,6 @@ config PARAVIRT_DEBUG
447config MEMTEST 447config MEMTEST
448 bool "Memtest" 448 bool "Memtest"
449 depends on X86_64 449 depends on X86_64
450 default y
451 help 450 help
452 This option adds a kernel parameter 'memtest', which allows memtest 451 This option adds a kernel parameter 'memtest', which allows memtest
453 to be set. 452 to be set.
@@ -455,7 +454,7 @@ config MEMTEST
455 memtest=1, mean do 1 test pattern; 454 memtest=1, mean do 1 test pattern;
456 ... 455 ...
457 memtest=4, mean do 4 test patterns. 456 memtest=4, mean do 4 test patterns.
458 If you are unsure how to answer this question, answer Y. 457 If you are unsure how to answer this question, answer N.
459 458
460config X86_SUMMIT_NUMA 459config X86_SUMMIT_NUMA
461 def_bool y 460 def_bool y
@@ -1135,21 +1134,18 @@ config MTRR
1135 See <file:Documentation/mtrr.txt> for more information. 1134 See <file:Documentation/mtrr.txt> for more information.
1136 1135
1137config MTRR_SANITIZER 1136config MTRR_SANITIZER
1138 def_bool y 1137 bool
1139 prompt "MTRR cleanup support" 1138 prompt "MTRR cleanup support"
1140 depends on MTRR 1139 depends on MTRR
1141 help 1140 help
1142 Convert MTRR layout from continuous to discrete, so some X driver 1141 Convert MTRR layout from continuous to discrete, so X drivers can
1143 could add WB entries. 1142 add writeback entries.
1144 1143
1145 Say N here if you see bootup problems (boot crash, boot hang, 1144 Can be disabled with disable_mtrr_cleanup on the kernel command line.
1146 spontaneous reboots). 1145 The largest mtrr entry size for a continous block can be set with
1146 mtrr_chunk_size.
1147 1147
1148 Could be disabled with disable_mtrr_cleanup. Also mtrr_chunk_size 1148 If unsure, say N.
1149 could be used to send largest mtrr entry size for continuous block
1150 to hold holes (aka. UC entries)
1151
1152 If unsure, say Y.
1153 1149
1154config MTRR_SANITIZER_ENABLE_DEFAULT 1150config MTRR_SANITIZER_ENABLE_DEFAULT
1155 int "MTRR cleanup enable value (0-1)" 1151 int "MTRR cleanup enable value (0-1)"
@@ -1166,7 +1162,7 @@ config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
1166 depends on MTRR_SANITIZER 1162 depends on MTRR_SANITIZER
1167 help 1163 help
1168 mtrr cleanup spare entries default, it can be changed via 1164 mtrr cleanup spare entries default, it can be changed via
1169 mtrr_spare_reg_nr= 1165 mtrr_spare_reg_nr=N on the kernel command line.
1170 1166
1171config X86_PAT 1167config X86_PAT
1172 bool 1168 bool
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
index e6a4b564ccaa..793ad2045f58 100644
--- a/arch/x86/kernel/acpi/sleep.c
+++ b/arch/x86/kernel/acpi/sleep.c
@@ -23,6 +23,15 @@ static unsigned long acpi_realmode;
23static char temp_stack[10240]; 23static char temp_stack[10240];
24#endif 24#endif
25 25
26/* XXX: this macro should move to asm-x86/segment.h and be shared with the
27 boot code... */
28#define GDT_ENTRY(flags, base, limit) \
29 (((u64)(base & 0xff000000) << 32) | \
30 ((u64)flags << 40) | \
31 ((u64)(limit & 0x00ff0000) << 32) | \
32 ((u64)(base & 0x00ffffff) << 16) | \
33 ((u64)(limit & 0x0000ffff)))
34
26/** 35/**
27 * acpi_save_state_mem - save kernel state 36 * acpi_save_state_mem - save kernel state
28 * 37 *
@@ -51,18 +60,27 @@ int acpi_save_state_mem(void)
51 header->video_mode = saved_video_mode; 60 header->video_mode = saved_video_mode;
52 61
53 header->wakeup_jmp_seg = acpi_wakeup_address >> 4; 62 header->wakeup_jmp_seg = acpi_wakeup_address >> 4;
63
64 /*
65 * Set up the wakeup GDT. We set these up as Big Real Mode,
66 * that is, with limits set to 4 GB. At least the Lenovo
67 * Thinkpad X61 is known to need this for the video BIOS
68 * initialization quirk to work; this is likely to also
69 * be the case for other laptops or integrated video devices.
70 */
71
54 /* GDT[0]: GDT self-pointer */ 72 /* GDT[0]: GDT self-pointer */
55 header->wakeup_gdt[0] = 73 header->wakeup_gdt[0] =
56 (u64)(sizeof(header->wakeup_gdt) - 1) + 74 (u64)(sizeof(header->wakeup_gdt) - 1) +
57 ((u64)(acpi_wakeup_address + 75 ((u64)(acpi_wakeup_address +
58 ((char *)&header->wakeup_gdt - (char *)acpi_realmode)) 76 ((char *)&header->wakeup_gdt - (char *)acpi_realmode))
59 << 16); 77 << 16);
60 /* GDT[1]: real-mode-like code segment */ 78 /* GDT[1]: big real mode-like code segment */
61 header->wakeup_gdt[1] = (0x009bULL << 40) + 79 header->wakeup_gdt[1] =
62 ((u64)acpi_wakeup_address << 16) + 0xffff; 80 GDT_ENTRY(0x809b, acpi_wakeup_address, 0xfffff);
63 /* GDT[2]: real-mode-like data segment */ 81 /* GDT[2]: big real mode-like data segment */
64 header->wakeup_gdt[2] = (0x0093ULL << 40) + 82 header->wakeup_gdt[2] =
65 ((u64)acpi_wakeup_address << 16) + 0xffff; 83 GDT_ENTRY(0x8093, acpi_wakeup_address, 0xfffff);
66 84
67#ifndef CONFIG_64BIT 85#ifndef CONFIG_64BIT
68 store_gdt((struct desc_ptr *)&header->pmode_gdt); 86 store_gdt((struct desc_ptr *)&header->pmode_gdt);
diff --git a/include/asm-x86/dwarf2.h b/include/asm-x86/dwarf2.h
index fd4a6a0393ac..738bb9fb3e53 100644
--- a/include/asm-x86/dwarf2.h
+++ b/include/asm-x86/dwarf2.h
@@ -38,23 +38,23 @@
38 38
39/* Due to the structure of pre-exisiting code, don't use assembler line 39/* Due to the structure of pre-exisiting code, don't use assembler line
40 comment character # to ignore the arguments. Instead, use a dummy macro. */ 40 comment character # to ignore the arguments. Instead, use a dummy macro. */
41.macro __cfi_ignore a=0, b=0, c=0, d=0 41.macro cfi_ignore a=0, b=0, c=0, d=0
42.endm 42.endm
43 43
44#define CFI_STARTPROC __cfi_ignore 44#define CFI_STARTPROC cfi_ignore
45#define CFI_ENDPROC __cfi_ignore 45#define CFI_ENDPROC cfi_ignore
46#define CFI_DEF_CFA __cfi_ignore 46#define CFI_DEF_CFA cfi_ignore
47#define CFI_DEF_CFA_REGISTER __cfi_ignore 47#define CFI_DEF_CFA_REGISTER cfi_ignore
48#define CFI_DEF_CFA_OFFSET __cfi_ignore 48#define CFI_DEF_CFA_OFFSET cfi_ignore
49#define CFI_ADJUST_CFA_OFFSET __cfi_ignore 49#define CFI_ADJUST_CFA_OFFSET cfi_ignore
50#define CFI_OFFSET __cfi_ignore 50#define CFI_OFFSET cfi_ignore
51#define CFI_REL_OFFSET __cfi_ignore 51#define CFI_REL_OFFSET cfi_ignore
52#define CFI_REGISTER __cfi_ignore 52#define CFI_REGISTER cfi_ignore
53#define CFI_RESTORE __cfi_ignore 53#define CFI_RESTORE cfi_ignore
54#define CFI_REMEMBER_STATE __cfi_ignore 54#define CFI_REMEMBER_STATE cfi_ignore
55#define CFI_RESTORE_STATE __cfi_ignore 55#define CFI_RESTORE_STATE cfi_ignore
56#define CFI_UNDEFINED __cfi_ignore 56#define CFI_UNDEFINED cfi_ignore
57#define CFI_SIGNAL_FRAME __cfi_ignore 57#define CFI_SIGNAL_FRAME cfi_ignore
58 58
59#endif 59#endif
60 60