Re: [PATCH AUTOSEL 6.3 06/11] of: fdt: Scan /memreserve/ last

From: Conor Dooley
Date: Mon May 15 2023 - 16:21:46 EST


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