Hey Sasha, On Thu, May 11, 2023 at 03:37:49PM -0400, Sasha Levin wrote: > From: Lucas Tanure <tanure@xxxxxxxxx> > > [ Upstream commit b413281876292de44ae84e9a9ce9d62e47f266e9 ] > > Change the scanning /memreserve/ and /reserved-memory node order to fix > Kernel panic on Khadas Vim3 Board. > > If /memreserve/ goes first, the memory is reserved, but nomap can't be > applied to the region. So the memory won't be used by Linux, but it is > still present in the linear map as normal memory, which allows > speculation. Legitimate access to adjacent pages will cause the CPU > to end up prefetching into them leading to Kernel panic. > > So /reserved-memory node should go first, as it has a more updated > description of the memory regions and can apply flags, like nomap. > > Link: https://lore.kernel.org/all/CAJX_Q+1Tjc+-TjZ6JW9X0NxEdFe=82a9626yL63j7uVD4LpxEA@xxxxxxxxxxxxxx/ > Signed-off-by: Lucas Tanure <tanure@xxxxxxxxx> > Link: https://lore.kernel.org/r/20230424113846.46382-1-tanure@xxxxxxxxx > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> Rob requested that this patch (and it's bretheren in other AUTOSEL series) not be backported immediately: | Going to let this sit in linux-next for a bit. I also didn't tag for | stable kernels. I want it to get some exposure in mainline at least for | a few -rc releases rather than getting backported right away. Please | help ensure that happens if you see stable review emails. I'm going to | be offline most of the next month. https://lore.kernel.org/linux-devicetree/168262872454.3491083.6407810340850053636.robh@xxxxxxxxxx/ Perhaps delaying it for another couple of weeks, since we have only just had -rc2, is a good idead? Cheers, Conor. > --- > 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 d1a68b6d03b3f..c28aedd7ae1f7 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.39.2 >
Attachment:
signature.asc
Description: PGP signature