The assignment `prev_end = pageblock_align(end)` is redundant because `prev_end` was already aligned to pageblock oundaries inside the loop. Since pageblock_align() is a pure function, calling it again with the same input produces the same result. This line was added in commit f921f53e089a ("memblock: align freed memory map on pageblock boundaries with SPARSEMEM"). Remove it to simplify the code. Signed-off-by: Zhen Ni --- mm/memblock.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mm/memblock.c b/mm/memblock.c index ccd43f3abb82..f50792375604 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -2258,10 +2258,8 @@ static void __init free_unused_memmap(void) } #ifdef CONFIG_SPARSEMEM - if (!IS_ALIGNED(prev_end, PAGES_PER_SECTION)) { - prev_end = pageblock_align(end); + if (!IS_ALIGNED(prev_end, PAGES_PER_SECTION)) free_memmap(prev_end, ALIGN(prev_end, PAGES_PER_SECTION)); - } #endif } -- 2.20.1