lkml.org 
[lkml]   [2013]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:x86/mm2] x86: Add get_ramdisk_image/size()
    Commit-ID:  a8a51a88d5152aa40e5e07dcdd939c7fafc42224
    Gitweb: http://git.kernel.org/tip/a8a51a88d5152aa40e5e07dcdd939c7fafc42224
    Author: Yinghai Lu <yinghai@kernel.org>
    AuthorDate: Thu, 24 Jan 2013 12:19:56 -0800
    Committer: H. Peter Anvin <hpa@linux.intel.com>
    CommitDate: Tue, 29 Jan 2013 15:21:05 -0800

    x86: Add get_ramdisk_image/size()

    There are several places to find ramdisk information early for reserving
    and relocating.

    Use accessor 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>
    Link: http://lkml.kernel.org/r/1359058816-7615-16-git-send-email-yinghai@kernel.org
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    ---
    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 8e35692..83b3861 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;


    \
     
     \ /
      Last update: 2013-01-30 03:01    [W:4.880 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site