#endif /* CONFIG_HUGETLB_PAGE */
 
 #define pageblock_nr_pages     (1UL << pageblock_order)
+#define pageblock_start_pfn(pfn)       ALIGN_DOWN((pfn), pageblock_nr_pages)
+#define pageblock_end_pfn(pfn)         ALIGN((pfn) + 1, pageblock_nr_pages)
 
 /* Forward declaration */
 struct page;
 
 
 #define block_start_pfn(pfn, order)    round_down(pfn, 1UL << (order))
 #define block_end_pfn(pfn, order)      ALIGN((pfn) + 1, 1UL << (order))
-#define pageblock_start_pfn(pfn)       block_start_pfn(pfn, pageblock_order)
-#define pageblock_end_pfn(pfn)         block_end_pfn(pfn, pageblock_order)
 
 /*
  * Page order with-respect-to which proactive compaction
 
                 * presume that there are no holes in the memory map inside
                 * a pageblock
                 */
-               start = round_down(start, pageblock_nr_pages);
+               start = pageblock_start_pfn(start);
 
                /*
                 * If we had a previous bank, and there is a space
 
 #ifdef CONFIG_SPARSEMEM
        pfn &= (PAGES_PER_SECTION-1);
 #else
-       pfn = pfn - round_down(page_zone(page)->zone_start_pfn, pageblock_nr_pages);
+       pfn = pfn - pageblock_start_pfn(page_zone(page)->zone_start_pfn);
 #endif /* CONFIG_SPARSEMEM */
        return (pfn >> pageblock_order) * NR_PAGEBLOCK_BITS;
 }
        unsigned long block_start_pfn = zone->zone_start_pfn;
        unsigned long block_end_pfn;
 
-       block_end_pfn = ALIGN(block_start_pfn + 1, pageblock_nr_pages);
+       block_end_pfn = pageblock_end_pfn(block_start_pfn);
        for (; block_start_pfn < zone_end_pfn(zone);
                        block_start_pfn = block_end_pfn,
                         block_end_pfn += pageblock_nr_pages) {
                *num_movable = 0;
 
        pfn = page_to_pfn(page);
-       start_pfn = pfn & ~(pageblock_nr_pages - 1);
-       end_pfn = start_pfn + pageblock_nr_pages - 1;
+       start_pfn = pageblock_start_pfn(pfn);
+       end_pfn = pageblock_end_pfn(pfn) - 1;
 
        /* Do not cross zone boundaries */
        if (!zone_spans_pfn(zone, start_pfn))
        u64 pgcnt = 0;
 
        for (pfn = spfn; pfn < epfn; pfn++) {
-               if (!pfn_valid(ALIGN_DOWN(pfn, pageblock_nr_pages))) {
-                       pfn = ALIGN_DOWN(pfn, pageblock_nr_pages)
-                               + pageblock_nr_pages - 1;
+               if (!pfn_valid(pageblock_start_pfn(pfn))) {
+                       pfn = pageblock_end_pfn(pfn) - 1;
                        continue;
                }
                __init_single_page(pfn_to_page(pfn), pfn, zone, node);
 
        struct zone *zone = page_zone(page);
        unsigned long pfn;
 
-       VM_BUG_ON(ALIGN_DOWN(start_pfn, pageblock_nr_pages) !=
-                 ALIGN_DOWN(end_pfn - 1, pageblock_nr_pages));
+       VM_BUG_ON(pageblock_start_pfn(start_pfn) !=
+                 pageblock_start_pfn(end_pfn - 1));
 
        if (is_migrate_cma_page(page)) {
                /*
         * to avoid redundant checks.
         */
        check_unmovable_start = max(page_to_pfn(page), start_pfn);
-       check_unmovable_end = min(ALIGN(page_to_pfn(page) + 1, pageblock_nr_pages),
+       check_unmovable_end = min(pageblock_end_pfn(page_to_pfn(page)),
                                  end_pfn);
 
        unmovable = has_unmovable_pages(check_unmovable_start, check_unmovable_end,
        unsigned long pfn;
        struct page *page;
        /* isolation is done at page block granularity */
-       unsigned long isolate_start = ALIGN_DOWN(start_pfn, pageblock_nr_pages);
+       unsigned long isolate_start = pageblock_start_pfn(start_pfn);
        unsigned long isolate_end = ALIGN(end_pfn, pageblock_nr_pages);
        int ret;
        bool skip_isolation = false;
 {
        unsigned long pfn;
        struct page *page;
-       unsigned long isolate_start = ALIGN_DOWN(start_pfn, pageblock_nr_pages);
+       unsigned long isolate_start = pageblock_start_pfn(start_pfn);
        unsigned long isolate_end = ALIGN(end_pfn, pageblock_nr_pages);
 
-
        for (pfn = isolate_start;
             pfn < isolate_end;
             pfn += pageblock_nr_pages) {
 
                        continue;
                }
 
-               block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages);
+               block_end_pfn = pageblock_end_pfn(pfn);
                block_end_pfn = min(block_end_pfn, end_pfn);
 
                pageblock_mt = get_pageblock_migratetype(page);
                        continue;
                }
 
-               block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages);
+               block_end_pfn = pageblock_end_pfn(pfn);
                block_end_pfn = min(block_end_pfn, end_pfn);
 
                for (; pfn < block_end_pfn; pfn++) {