[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240423233150.74302-1-quic_obabatun@quicinc.com>
Date: Tue, 23 Apr 2024 16:31:50 -0700
From: Oreoluwa Babatunde <quic_obabatun@...cinc.com>
To: <ysato@...rs.sourceforge.jp>, <dalias@...c.org>,
<glaubitz@...sik.fu-berlin.de>
CC: <akpm@...ux-foundation.org>, <linux-sh@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <robh+dt@...nel.org>,
<kernel@...cinc.com>, Oreoluwa Babatunde <quic_obabatun@...cinc.com>,
Rob Herring <robh@...nel.org>
Subject: [PATCH v2] sh: Call paging_init() earlier in the init sequence
The unflatten_device_tree() function contains a call to
memblock_alloc(). This is a problem because this allocation is done
before any of the reserved memory is set aside in paging_init().
This means that there is a possibility for memblock to allocate from
any of the memory regions that are supposed to be set aside as reserved.
Hence, move the call to paging_init() to be earlier in the init
sequence so that the reserved memory regions are set aside before any
allocations are done using memblock.
Reviewed-by: Rob Herring <robh@...nel.org>
Signed-off-by: Oreoluwa Babatunde <quic_obabatun@...cinc.com>
---
v2:
- Added Rob Herrings Reviewed-by.
- cc Andrew Morton to assist with merging this for sh architecture.
Similar change made for loongarch and openrisc in v1 have already
been merged.
v1:
https://lore.kernel.org/all/1707524971-146908-4-git-send-email-quic_obabatun@quicinc.com/
arch/sh/kernel/setup.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index 620e5cf8ae1e..98c8473e130d 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -322,6 +322,8 @@ void __init setup_arch(char **cmdline_p)
/* Let earlyprintk output early console messages */
sh_early_platform_driver_probe("earlyprintk", 1, 1);
+ paging_init();
+
#ifdef CONFIG_OF_EARLY_FLATTREE
#ifdef CONFIG_USE_BUILTIN_DTB
unflatten_and_copy_device_tree();
@@ -330,8 +332,6 @@ void __init setup_arch(char **cmdline_p)
#endif
#endif
- paging_init();
-
/* Perform the machine specific initialisation */
if (likely(sh_mv.mv_setup))
sh_mv.mv_setup(cmdline_p);
--
2.34.1
Powered by blists - more mailing lists