Message ID | 20230412224620.8909-2-tanure@linux.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix Random Kernel panic from when fail to reserve memory | expand |
On Wed, Apr 12, 2023 at 5:46 PM Lucas Tanure <tanure@linux.com> wrote: > > Change the order of scanning /memreserve/ and /reserved-memory node. > /reserved-memory node should go first, as it has a more updated > description of the memory regions and it can apply flags, like nomap. > Also, /memreserve/ should avoid reserving regions described in > /reserved-memory node. Please give some background details why we need to make this change. As-is, sounds like some theoretical issue. IOW, incorporate some of the details in the cover letter here. For single patches, you don't need a cover letter anyways. Powerpc folks, please comment and/or test. I worry there could be some subtle differences with this change. > > Signed-off-by: Lucas Tanure <tanure@linux.com> > --- > drivers/of/fdt.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > index d1a68b6d03b3..c28aedd7ae1f 100644 > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c > @@ -635,6 +635,9 @@ void __init early_init_fdt_scan_reserved_mem(void) > if (!initial_boot_params) > return; > > + fdt_scan_reserved_mem(); > + fdt_reserve_elfcorehdr(); > + > /* Process header /memreserve/ fields */ > for (n = 0; ; n++) { > fdt_get_mem_rsv(initial_boot_params, n, &base, &size); > @@ -643,8 +646,6 @@ void __init early_init_fdt_scan_reserved_mem(void) > memblock_reserve(base, size); > } > > - fdt_scan_reserved_mem(); > - fdt_reserve_elfcorehdr(); > fdt_init_reserved_mem(); > } > > -- > 2.40.0 >
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index d1a68b6d03b3..c28aedd7ae1f 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -635,6 +635,9 @@ void __init early_init_fdt_scan_reserved_mem(void) if (!initial_boot_params) return; + fdt_scan_reserved_mem(); + fdt_reserve_elfcorehdr(); + /* Process header /memreserve/ fields */ for (n = 0; ; n++) { fdt_get_mem_rsv(initial_boot_params, n, &base, &size); @@ -643,8 +646,6 @@ void __init early_init_fdt_scan_reserved_mem(void) memblock_reserve(base, size); } - fdt_scan_reserved_mem(); - fdt_reserve_elfcorehdr(); fdt_init_reserved_mem(); }
Change the order of scanning /memreserve/ and /reserved-memory node. /reserved-memory node should go first, as it has a more updated description of the memory regions and it can apply flags, like nomap. Also, /memreserve/ should avoid reserving regions described in /reserved-memory node. Signed-off-by: Lucas Tanure <tanure@linux.com> --- drivers/of/fdt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)