From: Yinghai Lu <yinghai@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
"H. Peter Anvin" <hpa@zytor.com>
Cc: linux-kernel@vger.kernel.org, Yinghai Lu <yinghai@kernel.org>
Subject: [PATCH 6/9] x86: add get_ramdisk_image/size
Date: Fri, 16 Nov 2012 00:53:06 -0800 [thread overview]
Message-ID: <1353055989-31939-7-git-send-email-yinghai@kernel.org> (raw)
In-Reply-To: <1353055989-31939-1-git-send-email-yinghai@kernel.org>
There several places to find ramdisk early for reserving and relocating.
use functions to make code more readable and consistent.
later will add ext_ramdisk_image/size with those functions to support
loading ramdisk above 4g.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
---
arch/x86/kernel/setup.c | 29 +++++++++++++++++++++--------
1 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index ee6d267..194e151 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -298,12 +298,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;
@@ -342,8 +355,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,
@@ -367,8 +380,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 ||
@@ -380,8 +393,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.7
next prev parent reply other threads:[~2012-11-16 8:53 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-16 8:53 [PATCH 0/9] x86, boot, 64bit: Add support for loading ramdisk and bzImage high Yinghai Lu
2012-11-16 8:53 ` [PATCH 1/9] x86, boot: Move lldt/ltr out of 64bit only path Yinghai Lu
2012-11-16 15:55 ` H. Peter Anvin
2012-11-16 18:15 ` Yinghai Lu
2012-11-16 8:53 ` [PATCH 2/9] x86: Add macro for 64bit entry for bzImage Yinghai Lu
2012-11-16 15:56 ` H. Peter Anvin
2012-11-16 8:53 ` [PATCH 3/9] x86, 64bit: set extra ident page table for whole kernel range Yinghai Lu
2012-11-16 8:53 ` [PATCH 4/9] x86, 64bit: add support for loading kernel above 512G Yinghai Lu
2012-11-16 8:53 ` [PATCH 5/9] x86: Merge early_reserve_initrd for 32bit and 64bit Yinghai Lu
2012-11-16 8:53 ` Yinghai Lu [this message]
2012-11-16 8:53 ` [PATCH 7/9] x86, boot: add field to support load bzImage and ramdisk high Yinghai Lu
2012-11-16 8:53 ` [PATCH 8/9] x86: ramdisk info print with high bits Yinghai Lu
2012-11-16 16:05 ` H. Peter Anvin
2012-11-16 19:21 ` Yinghai Lu
2012-11-16 19:32 ` Yinghai Lu
2012-11-16 19:39 ` H. Peter Anvin
2012-11-20 1:38 ` Valdis.Kletnieks
2012-11-16 19:39 ` H. Peter Anvin
2012-11-16 19:59 ` Yinghai Lu
2012-11-16 20:08 ` H. Peter Anvin
2012-11-16 20:12 ` Yinghai Lu
2012-11-16 20:25 ` H. Peter Anvin
2012-11-16 20:40 ` Yinghai Lu
2012-11-16 8:53 ` [PATCH 9/9] x86: remove 1024g limitation for kexec buffer on 64bit Yinghai Lu
2012-11-16 16:17 ` [PATCH 0/9] x86, boot, 64bit: Add support for loading ramdisk and bzImage high H. Peter Anvin
2012-11-17 0:40 ` Yinghai Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1353055989-31939-7-git-send-email-yinghai@kernel.org \
--to=yinghai@kernel.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.