aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/head_32.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/head_32.S')
-rw-r--r--arch/x86/kernel/head_32.S21
1 files changed, 19 insertions, 2 deletions
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index 9150ca9b5f80..39677965e161 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -51,6 +51,15 @@
51 */ 51 */
52LOW_PAGES = 1<<(32-PAGE_SHIFT_asm) 52LOW_PAGES = 1<<(32-PAGE_SHIFT_asm)
53 53
54/*
55 * To preserve the DMA pool in PAGEALLOC kernels, we'll allocate
56 * pagetables from above the 16MB DMA limit, so we'll have to set
57 * up pagetables 16MB more (worst-case):
58 */
59#ifdef CONFIG_DEBUG_PAGEALLOC
60LOW_PAGES = LOW_PAGES + 0x1000000
61#endif
62
54#if PTRS_PER_PMD > 1 63#if PTRS_PER_PMD > 1
55PAGE_TABLE_SIZE = (LOW_PAGES / PTRS_PER_PMD) + PTRS_PER_PGD 64PAGE_TABLE_SIZE = (LOW_PAGES / PTRS_PER_PMD) + PTRS_PER_PGD
56#else 65#else
@@ -443,6 +452,7 @@ early_page_fault:
443early_fault: 452early_fault:
444 cld 453 cld
445#ifdef CONFIG_PRINTK 454#ifdef CONFIG_PRINTK
455 pusha
446 movl $(__KERNEL_DS),%eax 456 movl $(__KERNEL_DS),%eax
447 movl %eax,%ds 457 movl %eax,%ds
448 movl %eax,%es 458 movl %eax,%es
@@ -534,8 +544,15 @@ int_msg:
534 .asciz "Unknown interrupt or fault at EIP %p %p %p\n" 544 .asciz "Unknown interrupt or fault at EIP %p %p %p\n"
535 545
536fault_msg: 546fault_msg:
537 .ascii "Int %d: CR2 %p err %p EIP %p CS %p flags %p\n" 547 .ascii \
538 .asciz "Stack: %p %p %p %p %p %p %p %p\n" 548/* fault info: */ "BUG: Int %d: CR2 %p\n" \
549/* pusha regs: */ " EDI %p ESI %p EBP %p ESP %p\n" \
550 " EBX %p EDX %p ECX %p EAX %p\n" \
551/* fault frame: */ " err %p EIP %p CS %p flg %p\n" \
552 \
553 "Stack: %p %p %p %p %p %p %p %p\n" \
554 " %p %p %p %p %p %p %p %p\n" \
555 " %p %p %p %p %p %p %p %p\n"
539 556
540#include "../../x86/xen/xen-head.S" 557#include "../../x86/xen/xen-head.S"
541 558