Yes. we have a reserved memory used for display the image, which needs to be deleted from memblock.reserved list(memblock_free
()) after display and then released into the buddy system(free_reserved_page
()). Should I use memblock_free() or another API?
On Wed, Jun 26, 2024 at 1:05 PM Mike Rapoport <rppt@xxxxxxxxxx> wrote:
On Tue, Jun 25, 2024 at 08:16:52PM +0800, Guanshun Liu wrote:
> On architectures that support the preservation of memblock metadata
> after __init, allow drivers to call memblock_free() to free a
> reservation configured in dts. This is a hack to support the
"This is a hack" implies that it's not a proper solution, right?
And anyway, memblock_free() will not actually free the memory after __init.
> freeing of bootsplash reservations passed to Linux by the bootloader.
>
> Signed-off-by: Guanshun Liu <lgs156412@xxxxxxxxx>
> ---
> mm/memblock.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 6d18485571b4..20e7f81fc076 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -848,6 +848,9 @@ void __init_memblock memblock_free(void *ptr, size_t size)
> if (ptr)
> memblock_phys_free(__pa(ptr), size);
> }
> +#ifdef CONFIG_ARCH_KEEP_MEMBLOCK
> +EXPORT_SYMBOL_GPL(memblock_free);
> +#endif
>
> /**
> * memblock_phys_free - free boot memory block
> --
> 2.25.1
>
--
Sincerely yours,
Mike.