mm, compaction: add per-zone migration pfn cache for async compaction
[platform/adaptation/renesas_rcar/renesas_kernel.git] / mm / page_cgroup.c
index 3bd0b8e..0e9a319 100644 (file)
@@ -54,8 +54,9 @@ static int __init alloc_node_page_cgroup(int nid)
 
        table_size = sizeof(struct page_cgroup) * nr_pages;
 
-       base = __alloc_bootmem_node_nopanic(NODE_DATA(nid),
-                       table_size, PAGE_SIZE, __pa(MAX_DMA_ADDRESS));
+       base = memblock_virt_alloc_try_nid_nopanic(
+                       table_size, PAGE_SIZE, __pa(MAX_DMA_ADDRESS),
+                       BOOTMEM_ALLOC_ACCESSIBLE, nid);
        if (!base)
                return -ENOMEM;
        NODE_DATA(nid)->node_page_cgroup = base;
@@ -170,6 +171,7 @@ static void free_page_cgroup(void *addr)
                        sizeof(struct page_cgroup) * PAGES_PER_SECTION;
 
                BUG_ON(PageReserved(page));
+               kmemleak_free(addr);
                free_pages_exact(addr, table_size);
        }
 }