]> Pileus Git - ~andy/linux/blobdiff - mm/memory_hotplug.c
AUDIT: Allow login in non-init namespaces
[~andy/linux] / mm / memory_hotplug.c
index cc2ab37220b7f1e226f2def39311c78e63420fdc..a650db29606fe73171df9d7c5326da56bbec500b 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