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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> From: Oreoluwa Babatunde <quic_obabatun@xxxxxxxxxxx>
> Sent: 2024年7月9日 7:06
> 
> 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/

For CMA regressions issue, tested it worked.
Tested-by: Dong Aisheng <aisheng.dong@xxxxxxx>

Regards
Aisheng

> 
> 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





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux