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

From: Andrew Morton
Date: Tue Nov 06 2018 - 17:11:36 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).

Why does this need "fixing"? Are there current callers which can
misalign chunk_start_addr? Or is there a requirement that future
callers can misalign chunk_start_addr?