]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - mm/page_isolation.c
Merge tag 'driver-core-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[karo-tx-linux.git] / mm / page_isolation.c
index a5594bfcc5ed2be4361e0885c9a066b22cde8b1b..7927bbb54a4e3200e39fc098b787794f21f6c855 100644 (file)
@@ -83,12 +83,12 @@ static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
        unsigned long flags, nr_pages;
        bool isolated_page = false;
        unsigned int order;
-       unsigned long page_idx, buddy_idx;
+       unsigned long pfn, buddy_pfn;
        struct page *buddy;
 
        zone = page_zone(page);
        spin_lock_irqsave(&zone->lock, flags);
-       if (get_pageblock_migratetype(page) != MIGRATE_ISOLATE)
+       if (!is_migrate_isolate_page(page))
                goto out;
 
        /*
@@ -102,11 +102,11 @@ static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
        if (PageBuddy(page)) {
                order = page_order(page);
                if (order >= pageblock_order) {
-                       page_idx = page_to_pfn(page) & ((1 << MAX_ORDER) - 1);
-                       buddy_idx = __find_buddy_index(page_idx, order);
-                       buddy = page + (buddy_idx - page_idx);
+                       pfn = page_to_pfn(page);
+                       buddy_pfn = __find_buddy_pfn(pfn, order);
+                       buddy = page + (buddy_pfn - pfn);
 
-                       if (pfn_valid_within(page_to_pfn(buddy)) &&
+                       if (pfn_valid_within(buddy_pfn) &&
                            !is_migrate_isolate_page(buddy)) {
                                __isolate_free_page(page, order);
                                isolated_page = true;
@@ -205,7 +205,7 @@ int undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
             pfn < end_pfn;
             pfn += pageblock_nr_pages) {
                page = __first_valid_page(pfn, pageblock_nr_pages);
-               if (!page || get_pageblock_migratetype(page) != MIGRATE_ISOLATE)
+               if (!page || !is_migrate_isolate_page(page))
                        continue;
                unset_migratetype_isolate(page, migratetype);
        }
@@ -262,7 +262,7 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
         */
        for (pfn = start_pfn; pfn < end_pfn; pfn += pageblock_nr_pages) {
                page = __first_valid_page(pfn, pageblock_nr_pages);
-               if (page && get_pageblock_migratetype(page) != MIGRATE_ISOLATE)
+               if (page && !is_migrate_isolate_page(page))
                        break;
        }
        page = __first_valid_page(start_pfn, end_pfn - start_pfn);