diff options
author | Yinghai Lu <yinghai@kernel.org> | 2010-02-10 04:20:23 -0500 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-02-12 12:42:38 -0500 |
commit | db8f77c889542b09457b8b97efb311343c99a75d (patch) | |
tree | cb3d4cb6d23c6e90917218233bc4dc2c9642b5f1 /arch | |
parent | 9bdac914240759457175ac0d6529a37d2820bc4d (diff) |
x86: Move bios page reserve early to head32/64.c
So prepare to make one more clean of early_res.c.
-v2: don't need to reserve first page in early_res
because we already mark that in e820 as reserved already.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
LKML-Reference: <1265793639-15071-20-git-send-email-yinghai@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/e820.c | 22 | ||||
-rw-r--r-- | arch/x86/kernel/head32.c | 10 |
2 files changed, 12 insertions, 20 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 90a85295f332..4004f10285d1 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
@@ -743,29 +743,11 @@ struct early_res { | |||
743 | char name[15]; | 743 | char name[15]; |
744 | char overlap_ok; | 744 | char overlap_ok; |
745 | }; | 745 | }; |
746 | static struct early_res early_res_x[MAX_EARLY_RES_X] __initdata = { | 746 | static struct early_res early_res_x[MAX_EARLY_RES_X] __initdata; |
747 | { 0, PAGE_SIZE, "BIOS data page", 1 }, /* BIOS data page */ | ||
748 | #if defined(CONFIG_X86_32) && defined(CONFIG_X86_TRAMPOLINE) | ||
749 | /* | ||
750 | * But first pinch a few for the stack/trampoline stuff | ||
751 | * FIXME: Don't need the extra page at 4K, but need to fix | ||
752 | * trampoline before removing it. (see the GDT stuff) | ||
753 | */ | ||
754 | { PAGE_SIZE, PAGE_SIZE + PAGE_SIZE, "EX TRAMPOLINE", 1 }, | ||
755 | #endif | ||
756 | |||
757 | {} | ||
758 | }; | ||
759 | 747 | ||
760 | static int max_early_res __initdata = MAX_EARLY_RES_X; | 748 | static int max_early_res __initdata = MAX_EARLY_RES_X; |
761 | static struct early_res *early_res __initdata = &early_res_x[0]; | 749 | static struct early_res *early_res __initdata = &early_res_x[0]; |
762 | static int early_res_count __initdata = | 750 | static int early_res_count __initdata; |
763 | #ifdef CONFIG_X86_32 | ||
764 | 2 | ||
765 | #else | ||
766 | 1 | ||
767 | #endif | ||
768 | ; | ||
769 | 751 | ||
770 | static int __init find_overlapped_early(u64 start, u64 end) | 752 | static int __init find_overlapped_early(u64 start, u64 end) |
771 | { | 753 | { |
diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c index 5051b94c9069..adedeef1dedc 100644 --- a/arch/x86/kernel/head32.c +++ b/arch/x86/kernel/head32.c | |||
@@ -29,6 +29,16 @@ static void __init i386_default_early_setup(void) | |||
29 | 29 | ||
30 | void __init i386_start_kernel(void) | 30 | void __init i386_start_kernel(void) |
31 | { | 31 | { |
32 | #ifdef CONFIG_X86_TRAMPOLINE | ||
33 | /* | ||
34 | * But first pinch a few for the stack/trampoline stuff | ||
35 | * FIXME: Don't need the extra page at 4K, but need to fix | ||
36 | * trampoline before removing it. (see the GDT stuff) | ||
37 | */ | ||
38 | reserve_early_overlap_ok(PAGE_SIZE, PAGE_SIZE + PAGE_SIZE, | ||
39 | "EX TRAMPOLINE"); | ||
40 | #endif | ||
41 | |||
32 | reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS"); | 42 | reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS"); |
33 | 43 | ||
34 | #ifdef CONFIG_BLK_DEV_INITRD | 44 | #ifdef CONFIG_BLK_DEV_INITRD |