esp8089: fix ESP8089 wifi can not work when use CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOT
[firefly-linux-kernel-4.4.55.git] / mm / page_alloc.c
index 025ebfc6d5a7d02f2b8fd357fc9f2d16d3f2f2f8..a13e47eecee8b95cc423799858cb4815517dc870 100644 (file)
@@ -1050,6 +1050,15 @@ __rmqueue_fallback(struct zone *zone, int order, int start_migratetype)
 
                        page = list_entry(area->free_list[migratetype].next,
                                        struct page, lru);
+
+#ifdef CONFIG_ARCH_ROCKCHIP
+                       if (is_migrate_cma(migratetype)){
+                               int mt = get_pageblock_migratetype(page);
+                               if (unlikely(is_migrate_isolate(mt)))
+                                       continue;
+                       }
+#endif
+
                        area->nr_free--;
 
                        /*
@@ -4550,7 +4559,7 @@ static inline void setup_usemap(struct pglist_data *pgdat, struct zone *zone,
 #ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
 
 /* Initialise the number of pages represented by NR_PAGEBLOCK_BITS */
-void __init set_pageblock_order(void)
+void __paginginit set_pageblock_order(void)
 {
        unsigned int order;
 
@@ -4578,7 +4587,7 @@ void __init set_pageblock_order(void)
  * include/linux/pageblock-flags.h for the values of pageblock_order based on
  * the kernel config
  */
-void __init set_pageblock_order(void)
+void __paginginit set_pageblock_order(void)
 {
 }