aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2013-01-24 15:19:56 -0500
committerH. Peter Anvin <hpa@linux.intel.com>2013-01-29 18:21:05 -0500
commita8a51a88d5152aa40e5e07dcdd939c7fafc42224 (patch)
tree316c1328f4e7aefd4c232c0d84b1346085278743
parent1b8c78be01203e1c95ec5dfef6db307796fe0bc7 (diff)
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>
-rw-r--r--arch/x86/kernel/setup.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 8e356923cbd0..83b38617ff59 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -294,12 +294,25 @@ static void __init reserve_brk(void)
294 294
295#ifdef CONFIG_BLK_DEV_INITRD 295#ifdef CONFIG_BLK_DEV_INITRD
296 296
297static u64 __init get_ramdisk_image(void)
298{
299 u64 ramdisk_image = boot_params.hdr.ramdisk_image;
300
301 return ramdisk_image;
302}
303static u64 __init get_ramdisk_size(void)
304{
305 u64 ramdisk_size = boot_params.hdr.ramdisk_size;
306
307 return ramdisk_size;
308}
309
297#define MAX_MAP_CHUNK (NR_FIX_BTMAPS << PAGE_SHIFT) 310#define MAX_MAP_CHUNK (NR_FIX_BTMAPS << PAGE_SHIFT)
298static void __init relocate_initrd(void) 311static void __init relocate_initrd(void)
299{ 312{
300 /* Assume only end is not page aligned */ 313 /* Assume only end is not page aligned */
301 u64 ramdisk_image = boot_params.hdr.ramdisk_image; 314 u64 ramdisk_image = get_ramdisk_image();
302 u64 ramdisk_size = boot_params.hdr.ramdisk_size; 315 u64 ramdisk_size = get_ramdisk_size();
303 u64 area_size = PAGE_ALIGN(ramdisk_size); 316 u64 area_size = PAGE_ALIGN(ramdisk_size);
304 u64 ramdisk_here; 317 u64 ramdisk_here;
305 unsigned long slop, clen, mapaddr; 318 unsigned long slop, clen, mapaddr;
@@ -338,8 +351,8 @@ static void __init relocate_initrd(void)
338 ramdisk_size -= clen; 351 ramdisk_size -= clen;
339 } 352 }
340 353
341 ramdisk_image = boot_params.hdr.ramdisk_image; 354 ramdisk_image = get_ramdisk_image();
342 ramdisk_size = boot_params.hdr.ramdisk_size; 355 ramdisk_size = get_ramdisk_size();
343 printk(KERN_INFO "Move RAMDISK from [mem %#010llx-%#010llx] to" 356 printk(KERN_INFO "Move RAMDISK from [mem %#010llx-%#010llx] to"
344 " [mem %#010llx-%#010llx]\n", 357 " [mem %#010llx-%#010llx]\n",
345 ramdisk_image, ramdisk_image + ramdisk_size - 1, 358 ramdisk_image, ramdisk_image + ramdisk_size - 1,
@@ -363,8 +376,8 @@ static u64 __init get_mem_size(unsigned long limit_pfn)
363static void __init early_reserve_initrd(void) 376static void __init early_reserve_initrd(void)
364{ 377{
365 /* Assume only end is not page aligned */ 378 /* Assume only end is not page aligned */
366 u64 ramdisk_image = boot_params.hdr.ramdisk_image; 379 u64 ramdisk_image = get_ramdisk_image();
367 u64 ramdisk_size = boot_params.hdr.ramdisk_size; 380 u64 ramdisk_size = get_ramdisk_size();
368 u64 ramdisk_end = PAGE_ALIGN(ramdisk_image + ramdisk_size); 381 u64 ramdisk_end = PAGE_ALIGN(ramdisk_image + ramdisk_size);
369 382
370 if (!boot_params.hdr.type_of_loader || 383 if (!boot_params.hdr.type_of_loader ||
@@ -376,8 +389,8 @@ static void __init early_reserve_initrd(void)
376static void __init reserve_initrd(void) 389static void __init reserve_initrd(void)
377{ 390{
378 /* Assume only end is not page aligned */ 391 /* Assume only end is not page aligned */
379 u64 ramdisk_image = boot_params.hdr.ramdisk_image; 392 u64 ramdisk_image = get_ramdisk_image();
380 u64 ramdisk_size = boot_params.hdr.ramdisk_size; 393 u64 ramdisk_size = get_ramdisk_size();
381 u64 ramdisk_end = PAGE_ALIGN(ramdisk_image + ramdisk_size); 394 u64 ramdisk_end = PAGE_ALIGN(ramdisk_image + ramdisk_size);
382 u64 mapped_size; 395 u64 mapped_size;
383 396