mm: per-thread vma caching
[platform/adaptation/renesas_rcar/renesas_kernel.git] / mm / memory_hotplug.c
index cc2ab37..a650db2 100644 (file)
@@ -1107,17 +1107,18 @@ int __ref add_memory(int nid, u64 start, u64 size)
        if (ret)
                return ret;
 
-       lock_memory_hotplug();
-
        res = register_memory_resource(start, size);
        ret = -EEXIST;
        if (!res)
-               goto out;
+               return ret;
 
        {       /* Stupid hack to suppress address-never-null warning */
                void *p = NODE_DATA(nid);
                new_pgdat = !p;
        }
+
+       lock_memory_hotplug();
+
        new_node = !node_online(nid);
        if (new_node) {
                pgdat = hotadd_new_pgdat(nid, start);
@@ -1309,7 +1310,7 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
 #ifdef CONFIG_DEBUG_VM
                        printk(KERN_ALERT "removing pfn %lx from LRU failed\n",
                               pfn);
-                       dump_page(page);
+                       dump_page(page, "failed to remove from LRU");
 #endif
                        put_page(page);
                        /* Because we don't have big zone->lock. we should