From: f.fainelli@gmail.com (Florian Fainelli)
To: linux-snps-arc@lists.infradead.org
Subject: [PATCH v4 4/6] arm64: Utilize phys_initrd_start/phys_initrd_size
Date: Mon, 5 Nov 2018 14:54:29 -0800 [thread overview]
Message-ID: <20181105225431.24485-5-f.fainelli@gmail.com> (raw)
In-Reply-To: <20181105225431.24485-1-f.fainelli@gmail.com>
ARM64 is the only architecture that re-defines
__early_init_dt_declare_initrd() in order for that function to populate
initrd_start/initrd_end with physical addresses instead of virtual
addresses. Instead of having an override we can leverage
drivers/of/fdt.c populating phys_initrd_start/phys_initrd_size to
populate those variables for us.
Signed-off-by: Florian Fainelli <f.fainelli at gmail.com>
---
arch/arm64/mm/init.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
index 9d9582cac6c4..a66ffcde5f13 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -71,8 +71,8 @@ static int __init early_initrd(char *p)
if (*endp == ',') {
size = memparse(endp + 1, NULL);
- initrd_start = start;
- initrd_end = start + size;
+ phys_initrd_start = start;
+ phys_initrd_size = size;
}
return 0;
}
@@ -407,14 +407,14 @@ void __init arm64_memblock_init(void)
memblock_add(__pa_symbol(_text), (u64)(_end - _text));
}
- if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && initrd_start) {
+ if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_initrd_size) {
/*
* Add back the memory we just removed if it results in the
* initrd to become inaccessible via the linear mapping.
* Otherwise, this is a no-op
*/
- u64 base = initrd_start & PAGE_MASK;
- u64 size = PAGE_ALIGN(initrd_end) - base;
+ u64 base = phys_initrd_start & PAGE_MASK;
+ u64 size = PAGE_ALIGN(phys_initrd_size);
/*
* We can only add back the initrd memory if we don't end up
@@ -458,15 +458,11 @@ void __init arm64_memblock_init(void)
* pagetables with memblock.
*/
memblock_reserve(__pa_symbol(_text), _end - _text);
-#ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start) {
- memblock_reserve(initrd_start, initrd_end - initrd_start);
-
+ if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_initrd_size) {
/* the generic initrd code expects virtual addresses */
- initrd_start = __phys_to_virt(initrd_start);
- initrd_end = __phys_to_virt(initrd_end);
+ initrd_start = __phys_to_virt(phys_initrd_start);
+ initrd_end = initrd_start + phys_initrd_size;
}
-#endif
early_init_fdt_scan_reserved_mem();
--
2.17.1
next prev parent reply other threads:[~2018-11-05 22:54 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-05 22:54 [PATCH v4 0/6] arm64: Get rid of __early_init_dt_declare_initrd() Florian Fainelli
2018-11-05 22:54 ` [PATCH v4 1/6] nds32: Remove phys_initrd_start and phys_initrd_size Florian Fainelli
2018-11-05 22:54 ` [PATCH v4 2/6] arch: Make phys_initrd_start and phys_initrd_size global variables Florian Fainelli
2018-11-05 22:54 ` [PATCH v4 3/6] of/fdt: Populate phys_initrd_start/phys_initrd_size from FDT Florian Fainelli
2018-11-05 22:54 ` Florian Fainelli [this message]
2018-11-15 17:45 ` [PATCH v4 4/6] arm64: Utilize phys_initrd_start/phys_initrd_size Will Deacon
2018-11-05 22:54 ` [PATCH v4 5/6] of/fdt: Remove custom __early_init_dt_declare_initrd() implementation Florian Fainelli
2018-11-05 22:54 ` [PATCH v4 6/6] arch: Move initrd= parsing into do_mounts_initrd.c Florian Fainelli
2018-11-13 0:34 ` Vineet Gupta
2018-11-13 0:37 ` Florian Fainelli
2018-11-13 0:40 ` Vineet Gupta
2018-11-13 0:52 ` Florian Fainelli
2018-11-13 0:57 ` Vineet Gupta
2018-11-15 19:35 ` Florian Fainelli
2018-11-06 14:06 ` [PATCH v4 0/6] arm64: Get rid of __early_init_dt_declare_initrd() Mike Rapoport
2018-11-12 20:32 ` Florian Fainelli
2018-11-13 0:22 ` Rob Herring
2018-11-26 21:56 ` Rob Herring
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=20181105225431.24485-5-f.fainelli@gmail.com \
--to=f.fainelli@gmail.com \
--cc=linux-snps-arc@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox