• Dennis Zhou's avatar
    percpu: do not search past bitmap when allocating an area · 4794604a
    Dennis Zhou authored
    [ Upstream commit 8c43004af01635cc9fbb11031d070e5e0d327ef2 ]
    pcpu_find_block_fit() guarantees that a fit is found within
    PCPU_BITMAP_BLOCK_BITS. Iteration is used to determine the first fit as
    it compares against the block's contig_hint. This can lead to
    incorrectly scanning past the end of the bitmap. The behavior was okay
    given the check after for bit_off >= end and the correctness of the
    hints from pcpu_find_block_fit().
    This patch fixes this by bounding the end offset by the number of bits
    in a chunk.
    Signed-off-by: default avatarDennis Zhou <dennis@kernel.org>
    Reviewed-by: Peng Fan's avatarPeng Fan <peng.fan@nxp.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>