Messages in this thread | | | Date | Mon, 29 Apr 2024 09:28:30 -0700 | Subject | Re: [PATCH v2] sh: Call paging_init() earlier in the init sequence | From | Oreoluwa Babatunde <> |
| |
On 4/29/2024 2:03 AM, John Paul Adrian Glaubitz wrote: > Hi Oreoluwa, > > On Tue, 2024-04-23 at 16:31 -0700, Oreoluwa Babatunde wrote: >> 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@kernel.org> >> Signed-off-by: Oreoluwa Babatunde <quic_obabatun@quicinc.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. > Could you link the changes for references so I can have a look? Hi John,
Here are links to the corresponding changes on Loongarch and Openrisc.
- Loongarch: https://lore.kernel.org/all/20240218151403.2206980-1-chenhuacai@loongson.cn/
- Openrisc: https://lore.kernel.org/all/1707524971-146908-3-git-send-email-quic_obabatun@quicinc.com/
Thank you! Oreoluwa > >> 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); > Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > > Adrian >
| |