of: fdt: Scan /memreserve/ last
authorLucas Tanure <tanure@linux.com>
Mon, 24 Apr 2023 11:38:46 +0000 (12:38 +0100)
committerRob Herring <robh@kernel.org>
Thu, 27 Apr 2023 20:52:16 +0000 (15:52 -0500)
commitb413281876292de44ae84e9a9ce9d62e47f266e9
tree3e772b2babd5fd16b4ecf7b5f079da4ed090f982
parent6e0c2bf2ca34046fe17a978a092925d411ce3a8c
of: fdt: Scan /memreserve/ last

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@mail.gmail.com/
Signed-off-by: Lucas Tanure <tanure@linux.com>
Link: https://lore.kernel.org/r/20230424113846.46382-1-tanure@linux.com
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/of/fdt.c