crypto: rsa-pkcs1pad - Handle leading zero for decryption
[cascardo/linux.git] / mm / page_isolation.c
index 612122b..064b7fb 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/pageblock-flags.h>
 #include <linux/memory.h>
 #include <linux/hugetlb.h>
+#include <linux/page_owner.h>
 #include "internal.h"
 
 #define CREATE_TRACE_POINTS
@@ -80,7 +81,7 @@ static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
 {
        struct zone *zone;
        unsigned long flags, nr_pages;
-       struct page *isolated_page = NULL;
+       bool isolated_page = false;
        unsigned int order;
        unsigned long page_idx, buddy_idx;
        struct page *buddy;
@@ -108,9 +109,7 @@ static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
                        if (pfn_valid_within(page_to_pfn(buddy)) &&
                            !is_migrate_isolate_page(buddy)) {
                                __isolate_free_page(page, order);
-                               kernel_map_pages(page, (1 << order), 1);
-                               set_page_refcounted(page);
-                               isolated_page = page;
+                               isolated_page = true;
                        }
                }
        }
@@ -128,8 +127,10 @@ static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
        zone->nr_isolate_pageblock--;
 out:
        spin_unlock_irqrestore(&zone->lock, flags);
-       if (isolated_page)
-               __free_pages(isolated_page, order);
+       if (isolated_page) {
+               post_alloc_hook(page, order, __GFP_MOVABLE);
+               __free_pages(page, order);
+       }
 }
 
 static inline struct page *