Re: [PATCH] lib/genaloc: Fix allocation of aligned buffer from non-aligned chunk

From: Andrew Morton
Date: Tue Nov 06 2018 - 17:15:47 EST


On Tue, 6 Nov 2018 14:20:53 +0200 Alexey Skidanov <alexey.skidanov@xxxxxxxxx> wrote:

> On success, gen_pool_first_fit_align() returns the bit number such that
> chunk_start_addr + (bit << order) is properly aligned. On failure,
> the bitmap size parameter is returned.
>
> When the chunk_start_addr isn't aligned properly, the
> chunk_start_addr + (bit << order) isn't aligned too.
>
> To fix this, gen_pool_first_fit_align() takes into account
> the chunk_start_addr alignment and returns the bit value such that
> chunk_start_addr + (bit << order) is properly aligned
> (exactly as it done in CMA).
>
> ...
>
> --- a/include/linux/genalloc.h
> +++ b/include/linux/genalloc.h
>
> ...
>
> + struct gen_pool *pool, unsigned long start_add)
>
> ...
>
> + struct gen_pool *pool, unsigned long start_add)
>
> ...
>
> + struct gen_pool *pool, unsigned long start_add)
>
> ...
>

We have three typos here. Which makes me wonder why we're passing the
new argument and then not using it?