lkml.org 
[lkml]   [2012]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 09/27] x86: add get_ramdisk_image/size()
    Date
    There several places to find ramdisk information early for reserving
    and relocating.

    Use functions to make code more readable and consistent.

    Later will add ext_ramdisk_image/size in those functions to support
    loading ramdisk above 4g.

    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    ---
    arch/x86/kernel/setup.c | 29 +++++++++++++++++++++--------
    1 file changed, 21 insertions(+), 8 deletions(-)

    diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
    index 1b8a8cc..644a123 100644
    --- a/arch/x86/kernel/setup.c
    +++ b/arch/x86/kernel/setup.c
    @@ -294,12 +294,25 @@ static void __init reserve_brk(void)

    #ifdef CONFIG_BLK_DEV_INITRD

    +static u64 __init get_ramdisk_image(void)
    +{
    + u64 ramdisk_image = boot_params.hdr.ramdisk_image;
    +
    + return ramdisk_image;
    +}
    +static u64 __init get_ramdisk_size(void)
    +{
    + u64 ramdisk_size = boot_params.hdr.ramdisk_size;
    +
    + return ramdisk_size;
    +}
    +
    #define MAX_MAP_CHUNK (NR_FIX_BTMAPS << PAGE_SHIFT)
    static void __init relocate_initrd(void)
    {
    /* Assume only end is not page aligned */
    - u64 ramdisk_image = boot_params.hdr.ramdisk_image;
    - u64 ramdisk_size = boot_params.hdr.ramdisk_size;
    + u64 ramdisk_image = get_ramdisk_image();
    + u64 ramdisk_size = get_ramdisk_size();
    u64 area_size = PAGE_ALIGN(ramdisk_size);
    u64 ramdisk_here;
    unsigned long slop, clen, mapaddr;
    @@ -338,8 +351,8 @@ static void __init relocate_initrd(void)
    ramdisk_size -= clen;
    }

    - ramdisk_image = boot_params.hdr.ramdisk_image;
    - ramdisk_size = boot_params.hdr.ramdisk_size;
    + ramdisk_image = get_ramdisk_image();
    + ramdisk_size = get_ramdisk_size();
    printk(KERN_INFO "Move RAMDISK from [mem %#010llx-%#010llx] to"
    " [mem %#010llx-%#010llx]\n",
    ramdisk_image, ramdisk_image + ramdisk_size - 1,
    @@ -363,8 +376,8 @@ static u64 __init get_mem_size(unsigned long limit_pfn)
    static void __init early_reserve_initrd(void)
    {
    /* Assume only end is not page aligned */
    - u64 ramdisk_image = boot_params.hdr.ramdisk_image;
    - u64 ramdisk_size = boot_params.hdr.ramdisk_size;
    + u64 ramdisk_image = get_ramdisk_image();
    + u64 ramdisk_size = get_ramdisk_size();
    u64 ramdisk_end = PAGE_ALIGN(ramdisk_image + ramdisk_size);

    if (!boot_params.hdr.type_of_loader ||
    @@ -376,8 +389,8 @@ static void __init early_reserve_initrd(void)
    static void __init reserve_initrd(void)
    {
    /* Assume only end is not page aligned */
    - u64 ramdisk_image = boot_params.hdr.ramdisk_image;
    - u64 ramdisk_size = boot_params.hdr.ramdisk_size;
    + u64 ramdisk_image = get_ramdisk_image();
    + u64 ramdisk_size = get_ramdisk_size();
    u64 ramdisk_end = PAGE_ALIGN(ramdisk_image + ramdisk_size);
    u64 mapped_size;

    --
    1.7.10.4


    \
     
     \ /
      Last update: 2012-12-18 09:21    [W:4.623 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site