v1 ==> v2: remove page_nth It isn't true for only SPARSEMEM configs to assume that a compound page has virtually contiguous page structs, so use nth_page to iterate each page. Inspired by: https://lore.kernel.org/linux-mm/20220204195852.1751729-8-willy@xxxxxxxxxxxxx/ Chen Wandun (2): mm: fix contiguous memmap assumptions about split page mm: fix contiguous memmap assumptions about alloc/free pages mm/compaction.c | 6 +++--- mm/huge_memory.c | 2 +- mm/page_alloc.c | 18 ++++++++++-------- 3 files changed, 14 insertions(+), 12 deletions(-) -- 2.18.0.huawei.25