Re: [PATCH v2] sh: Call paging_init() earlier in the init sequence
Oreoluwa Babatunde <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> >> Signed-off-by: Oreoluwa Babatunde <[email protected]> >> --- >> 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/[email protected]/ - Openrisc: https://lore.kernel.org/all/[email protected]/ Thank you! Oreoluwa > >> v1: >> https://lore.kernel.org/all/[email protected]/ >> >> 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 <[email protected]> > > Adrian >