If the block [contig_hint_start, contig_hint_start + contig_hint) matches block->right_free area, need use "<=", not "<". Signed-off-by: Peng Fan <peng.fan@xxxxxxx> --- V1: Based on https://patchwork.kernel.org/cover/10832459/ applied linux-next boot test on qemu aarch64 mm/percpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/percpu.c b/mm/percpu.c index 5ee90fc34ea3..0f91f1d883c6 100644 --- a/mm/percpu.c +++ b/mm/percpu.c @@ -390,7 +390,8 @@ static void pcpu_next_md_free_region(struct pcpu_chunk *chunk, int *bit_off, */ *bits = block->contig_hint; if (*bits && block->contig_hint_start >= block_off && - *bits + block->contig_hint_start < PCPU_BITMAP_BLOCK_BITS) { + *bits + block->contig_hint_start <= + PCPU_BITMAP_BLOCK_BITS) { *bit_off = pcpu_block_off_to_off(i, block->contig_hint_start); return; -- 2.16.4