mm: fix crashes from mbind() merging vmas
[platform/adaptation/renesas_rcar/renesas_kernel.git] / mm / memory_hotplug.c
index a512a47..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);