Re: [PATCH v2] sh: Call paging_init() earlier in the init sequence

John Paul Adrian Glaubitz <[email protected]>
Newsgroups gmane.linux.ports.sh.devel,gmane.linux.kernel
Message-ID <b00e0adc72815e465cf32fc5505445cfceeeca84.camel@physik.fu-berlin.de>
Hi Oreoluwa,

On Wed, 2024-05-01 at 19:18 +0200, 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.
> 
> I was just about to merge your patch when I ran a git blame on the code in
> arch/sh/kernel/setup.c and noticed the following commit by Rich Felker:
> 
> commit eb6b6930a70faefe04479a71088cc10366782d9a
> Author: Rich Felker <[email protected]>
> Date:   Mon Jul 31 01:27:50 2017 -0400
> 
>     sh: fix memory corruption of unflattened device tree
>     
>     unflatten_device_tree() makes use of memblock allocation, and
>     therefore must be called before paging_init() migrates the memblock
>     allocation data to the bootmem framework. Otherwise the record of the
>     allocation for the expanded device tree will be lost, and will
>     eventually be clobbered when allocated for another use.
>     
>     Signed-off-by: Rich Felker <[email protected]>
> 
> It looks like that the call to unflatten_device_tree() before paging_init()
> is intentional and needed for the device tree to be preserved in memory
> after running paging_init().
> 
> @Geert: Do you have any comments on this patch?
> @Rob: Could you test this patch on your J2 board and report back?

I'm skipping this patch for v6.10 now for the aforementioned reasons.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.