aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2010-02-10 04:20:23 -0500
committerH. Peter Anvin <hpa@zytor.com>2010-02-12 12:42:38 -0500
commitdb8f77c889542b09457b8b97efb311343c99a75d (patch)
treecb3d4cb6d23c6e90917218233bc4dc2c9642b5f1 /arch
parent9bdac914240759457175ac0d6529a37d2820bc4d (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.c22
-rw-r--r--arch/x86/kernel/head32.c10
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};
746static struct early_res early_res_x[MAX_EARLY_RES_X] __initdata = { 746static 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
760static int max_early_res __initdata = MAX_EARLY_RES_X; 748static int max_early_res __initdata = MAX_EARLY_RES_X;
761static struct early_res *early_res __initdata = &early_res_x[0]; 749static struct early_res *early_res __initdata = &early_res_x[0];
762static int early_res_count __initdata = 750static int early_res_count __initdata;
763#ifdef CONFIG_X86_32
764 2
765#else
766 1
767#endif
768 ;
769 751
770static int __init find_overlapped_early(u64 start, u64 end) 752static 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
30void __init i386_start_kernel(void) 30void __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