LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Florian Fainelli <f.fainelli@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: Florian Fainelli <f.fainelli@gmail.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
Rob Herring <robh+dt@kernel.org>,
Frank Rowand <frowand.list@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Marc Zyngier <marc.zyngier@arm.com>,
Russell King <rmk+kernel@armlinux.org.uk>,
Andrey Ryabinin <aryabinin@virtuozzo.com>,
Andrey Konovalov <andreyknvl@google.com>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
Robin Murphy <robin.murphy@arm.com>,
Laura Abbott <labbott@redhat.com>, Stefan Agner <stefan@agner.ch>,
Johannes Weiner <hannes@cmpxchg.org>,
Greg Hackmann <ghackmann@android.com>,
Kristina Martsenko <kristina.martsenko@arm.com>,
CHANDAN VN <chandan.vn@samsung.com>,
linux-arm-kernel@lists.infradead.org (moderated list:ARM64 PORT
(AARCH64 ARCHITECTURE)),
devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND
FLATTENED DEVICE TREE),
rppt@linux.ibm.com, linux@armlinux.org.uk
Subject: [PATCH v4 1/2] arm64: Get rid of __early_init_dt_declare_initrd()
Date: Fri, 26 Oct 2018 15:39:50 -0700 [thread overview]
Message-ID: <20181026223951.30936-2-f.fainelli@gmail.com> (raw)
In-Reply-To: <20181026223951.30936-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, just get rid of that
implementation and perform the virtual to physical conversion of these
addresses in arm64_memblock_init() where relevant.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
arch/arm64/include/asm/memory.h | 8 --------
arch/arm64/mm/init.c | 26 ++++++++++++++++----------
2 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
index b96442960aea..dc3ca21ba240 100644
--- a/arch/arm64/include/asm/memory.h
+++ b/arch/arm64/include/asm/memory.h
@@ -168,14 +168,6 @@
#define IOREMAP_MAX_ORDER (PMD_SHIFT)
#endif
-#ifdef CONFIG_BLK_DEV_INITRD
-#define __early_init_dt_declare_initrd(__start, __end) \
- do { \
- initrd_start = (__start); \
- initrd_end = (__end); \
- } while (0)
-#endif
-
#ifndef __ASSEMBLY__
#include <linux/bitops.h>
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
index 3cf87341859f..98ff0f7a0f7a 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -364,6 +364,9 @@ static void __init fdt_enforce_memory_region(void)
void __init arm64_memblock_init(void)
{
const s64 linear_region_size = -(s64)PAGE_OFFSET;
+ unsigned long __maybe_unused phys_initrd_size;
+ u64 __maybe_unused phys_initrd_start;
+ u64 __maybe_unused base, size;
/* Handle linux,usable-memory-range property */
fdt_enforce_memory_region();
@@ -414,8 +417,11 @@ void __init arm64_memblock_init(void)
* 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;
+ phys_initrd_start = __pa(initrd_start);
+ phys_initrd_size = __pa(initrd_end) - phys_initrd_start;
+
+ base = phys_initrd_start & PAGE_MASK;
+ size = PAGE_ALIGN(phys_initrd_size);
/*
* We can only add back the initrd memory if we don't end up
@@ -459,15 +465,15 @@ 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);
-
- /* the generic initrd code expects virtual addresses */
- initrd_start = __phys_to_virt(initrd_start);
- initrd_end = __phys_to_virt(initrd_end);
+ if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && initrd_start) {
+ memblock_reserve(phys_initrd_start, phys_initrd_size);
+ /*
+ * initrd_below_start_ok can be changed by
+ * __early_init_dt_declare_initrd(), set it back to what
+ * we want here.
+ */
+ initrd_below_start_ok = 0;
}
-#endif
early_init_fdt_scan_reserved_mem();
--
2.17.1
next prev parent reply other threads:[~2018-10-26 22:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-26 22:39 [PATCH v4 0/2] " Florian Fainelli
2018-10-26 22:39 ` Florian Fainelli [this message]
2018-10-27 9:13 ` [PATCH v4 1/2] " Mike Rapoport
2018-10-29 16:51 ` Florian Fainelli
2018-10-26 22:39 ` [PATCH v4 2/2] of/fdt: Remove definition check for __early_init_dt_declare_initrd() Florian Fainelli
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=20181026223951.30936-2-f.fainelli@gmail.com \
--to=f.fainelli@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=andreyknvl@google.com \
--cc=aryabinin@virtuozzo.com \
--cc=catalin.marinas@arm.com \
--cc=chandan.vn@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=ghackmann@android.com \
--cc=hannes@cmpxchg.org \
--cc=kristina.martsenko@arm.com \
--cc=labbott@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=marc.zyngier@arm.com \
--cc=rmk+kernel@armlinux.org.uk \
--cc=robh+dt@kernel.org \
--cc=robin.murphy@arm.com \
--cc=rppt@linux.ibm.com \
--cc=stefan@agner.ch \
--cc=will.deacon@arm.com \
--cc=yamada.masahiro@socionext.com \
--subject='Re: [PATCH v4 1/2] arm64: Get rid of __early_init_dt_declare_initrd()' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).