Messages in this thread | | | Subject | Re: [PATCH v2] sh: Call paging_init() earlier in the init sequence | From | John Paul Adrian Glaubitz <> | Date | Thu, 02 May 2024 12:29:47 +0200 |
| |
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 <dalias@libc.org> > 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 <dalias@libc.org> > > 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
| |