Re: [PATCH 0/4] Revert use of Unflatten_devicetree APIs from reserved_mem

From: Klara Modin
Date: Tue Jul 09 2024 - 07:30:45 EST


Hi,

Den tis 9 juli 2024 kl 01:06 skrev Oreoluwa Babatunde
<quic_obabatun@xxxxxxxxxxx>:
>
> With recent changes made to initialize the cma regions before the page
> tables are setup, commit f2a524d9ef5b ("of: reserved_mem: Restructure
> code to call reserved mem init functions earlier"), an issue was
> introduced where the initialization of the cma regions fail and are
> initialized as "non-reusable" regions instead of "reusable". [1], [2]
>
> This issue occurs because the device_node of the regions are not yet
> created by the time the cma regions are being initialized.
>
> The cma regions need to be initialized before the page tables are setup
> for them to be configured correctly as was realized in [3].
>
> Hence, since the unflatten_devicetree APIs are not available until after
> the page tables have been setup, revert back to using the fdt APIs. This
> makes it possible to store a reference to each cma node in the
> reserved_mem array by the time it is needed in the init function.
>
> [1] https://lore.kernel.org/all/DU0PR04MB9299C3EC247E1FE2C373440F80DE2@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
>
> [2] https://lore.kernel.org/all/986361f4-f000-4129-8214-39f2fb4a90da@xxxxxxxxx/
>
> [3] https://lore.kernel.org/all/20240610213403.GA1697364@thelio-3990X/
>

These reverts also fixes the issue for me. Feel free to CC me when you
decide to send the next version if you want and I can retest it.

Regards,
Tested-by: Klara Modin <klarasmodin@xxxxxxxxx>

> Oreoluwa Babatunde (4):
> Revert "of: reserved_mem: Restructure code to call reserved mem init
> functions earlier"
> Revert "of: reserved_mem: Rename fdt_* functions to refelct the change
> from using fdt APIs"
> Revert "of: reserved_mem: Use unflatten_devicetree APIs to scan
> reserved memory nodes"
> of: reserved_mem: Restructure code to call rmem init functions earlier
>
> drivers/of/fdt.c | 2 +-
> drivers/of/of_private.h | 2 +-
> drivers/of/of_reserved_mem.c | 103 +++++++++++++++++---------------
> include/linux/of_reserved_mem.h | 2 +-
> kernel/dma/coherent.c | 10 ++--
> kernel/dma/contiguous.c | 8 +--
> kernel/dma/swiotlb.c | 10 ++--
> 7 files changed, 72 insertions(+), 65 deletions(-)
>
> --
> 2.34.1
>