]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - mm/page_isolation.c
kasan: resched in quarantine_remove_cache()
[karo-tx-linux.git] / mm / page_isolation.c
index a5594bfcc5ed2be4361e0885c9a066b22cde8b1b..f4e17a57926afffa33fceabf81a742ffc254d914 100644 (file)
@@ -83,7 +83,7 @@ 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);
@@ -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;