Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm: add pageblock_align() macro

Add pageblock_align() macro and use it to simplify code.

Link: https://lkml.kernel.org/r/20220907060844.126891-2-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Acked-by: Mike Rapoport <rppt@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Kefeng Wang and committed by
Andrew Morton
5f7fa13f 4f9bc69a

+5 -4
+1
include/linux/pageblock-flags.h
··· 53 53 #endif /* CONFIG_HUGETLB_PAGE */ 54 54 55 55 #define pageblock_nr_pages (1UL << pageblock_order) 56 + #define pageblock_align(pfn) ALIGN((pfn), pageblock_nr_pages) 56 57 #define pageblock_start_pfn(pfn) ALIGN_DOWN((pfn), pageblock_nr_pages) 57 58 #define pageblock_end_pfn(pfn) ALIGN((pfn) + 1, pageblock_nr_pages) 58 59
+2 -2
mm/memblock.c
··· 2014 2014 * presume that there are no holes in the memory map inside 2015 2015 * a pageblock 2016 2016 */ 2017 - prev_end = ALIGN(end, pageblock_nr_pages); 2017 + prev_end = pageblock_align(end); 2018 2018 } 2019 2019 2020 2020 #ifdef CONFIG_SPARSEMEM 2021 2021 if (!IS_ALIGNED(prev_end, PAGES_PER_SECTION)) { 2022 - prev_end = ALIGN(end, pageblock_nr_pages); 2022 + prev_end = pageblock_align(end); 2023 2023 free_memmap(prev_end, ALIGN(prev_end, PAGES_PER_SECTION)); 2024 2024 } 2025 2025 #endif
+2 -2
mm/page_isolation.c
··· 533 533 struct page *page; 534 534 /* isolation is done at page block granularity */ 535 535 unsigned long isolate_start = pageblock_start_pfn(start_pfn); 536 - unsigned long isolate_end = ALIGN(end_pfn, pageblock_nr_pages); 536 + unsigned long isolate_end = pageblock_align(end_pfn); 537 537 int ret; 538 538 bool skip_isolation = false; 539 539 ··· 580 580 unsigned long pfn; 581 581 struct page *page; 582 582 unsigned long isolate_start = pageblock_start_pfn(start_pfn); 583 - unsigned long isolate_end = ALIGN(end_pfn, pageblock_nr_pages); 583 + unsigned long isolate_end = pageblock_align(end_pfn); 584 584 585 585 for (pfn = isolate_start; 586 586 pfn < isolate_end;