Message ID | 1707524971-146908-4-git-send-email-quic_obabatun@quicinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Restructure init sequence to set aside reserved memory earlier | expand |
On Fri, Feb 9, 2024 at 5:29 PM Oreoluwa Babatunde <quic_obabatun@quicinc.com> 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. > > Signed-off-by: Oreoluwa Babatunde <quic_obabatun@quicinc.com> > --- > arch/sh/kernel/setup.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Rob Herring <robh@kernel.org>
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index d3175f0..ea40798 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);
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. Signed-off-by: Oreoluwa Babatunde <quic_obabatun@quicinc.com> --- arch/sh/kernel/setup.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --