lkml.org 
[lkml]   [2010]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 21/29] x86: move bios page reserve early to head32/64.c
    so prepare to make one more clean early_res.c

    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    ---
    arch/x86/kernel/e820.c | 22 ++--------------------
    arch/x86/kernel/head32.c | 12 ++++++++++++
    arch/x86/kernel/head64.c | 2 ++
    3 files changed, 16 insertions(+), 20 deletions(-)

    diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
    index bd6a361..b7681e3 100644
    --- a/arch/x86/kernel/e820.c
    +++ b/arch/x86/kernel/e820.c
    @@ -735,29 +735,11 @@ struct early_res {
    char name[15];
    char overlap_ok;
    };
    -static struct early_res early_res_x[MAX_EARLY_RES_X] __initdata = {
    - { 0, PAGE_SIZE, "BIOS data page", 1 }, /* BIOS data page */
    -#if defined(CONFIG_X86_32) && defined(CONFIG_X86_TRAMPOLINE)
    - /*
    - * But first pinch a few for the stack/trampoline stuff
    - * FIXME: Don't need the extra page at 4K, but need to fix
    - * trampoline before removing it. (see the GDT stuff)
    - */
    - { PAGE_SIZE, PAGE_SIZE + PAGE_SIZE, "EX TRAMPOLINE", 1 },
    -#endif
    -
    - {}
    -};
    +static struct early_res early_res_x[MAX_EARLY_RES_X] __initdata;

    static int max_early_res __initdata = MAX_EARLY_RES_X;
    static struct early_res *early_res __initdata = &early_res_x[0];
    -static int early_res_count __initdata =
    -#ifdef CONFIG_X86_32
    - 2
    -#else
    - 1
    -#endif
    - ;
    +static int early_res_count __initdata;

    static int __init find_overlapped_early(u64 start, u64 end)
    {
    diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c
    index 5051b94..2e13544 100644
    --- a/arch/x86/kernel/head32.c
    +++ b/arch/x86/kernel/head32.c
    @@ -29,6 +29,18 @@ static void __init i386_default_early_setup(void)

    void __init i386_start_kernel(void)
    {
    + reserve_early_overlap_ok(0, PAGE_SIZE, "BIOS data page");
    +
    +#ifdef CONFIG_X86_TRAMPOLINE
    + /*
    + * But first pinch a few for the stack/trampoline stuff
    + * FIXME: Don't need the extra page at 4K, but need to fix
    + * trampoline before removing it. (see the GDT stuff)
    + */
    + reserve_early_overlap_ok(PAGE_SIZE, PAGE_SIZE + PAGE_SIZE,
    + "EX TRAMPOLINE");
    +#endif
    +
    reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");

    #ifdef CONFIG_BLK_DEV_INITRD
    diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
    index b5a9896..452b7c4 100644
    --- a/arch/x86/kernel/head64.c
    +++ b/arch/x86/kernel/head64.c
    @@ -98,6 +98,8 @@ void __init x86_64_start_reservations(char *real_mode_data)
    {
    copy_bootdata(__va(real_mode_data));

    + reserve_early_overlap_ok(0, PAGE_SIZE, "BIOS data page");
    +
    reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");

    #ifdef CONFIG_BLK_DEV_INITRD
    --
    1.6.4.2


    \
     
     \ /
      Last update: 2010-01-04 04:13    [W:0.024 / U:151.060 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site