]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - kernel/memremap.c
UBUNTU: Ubuntu-4.10.0-34.38
[mirror_ubuntu-zesty-kernel.git] / kernel / memremap.c
index 9ecedc28b928debb6a5988a5db8b76833133d9e4..06123234f1189c86ee42dffdc2d14873b6b16895 100644 (file)
@@ -246,9 +246,13 @@ static void devm_memremap_pages_release(struct device *dev, void *data)
        /* pages are dead and unused, undo the arch mapping */
        align_start = res->start & ~(SECTION_SIZE - 1);
        align_size = ALIGN(resource_size(res), SECTION_SIZE);
+
+       lock_device_hotplug();
        mem_hotplug_begin();
        arch_remove_memory(align_start, align_size);
        mem_hotplug_done();
+       unlock_device_hotplug();
+
        untrack_pfn(NULL, PHYS_PFN(align_start), align_size);
        pgmap_radix_release(res);
        dev_WARN_ONCE(dev, pgmap->altmap && pgmap->altmap->alloc,
@@ -360,9 +364,11 @@ void *devm_memremap_pages(struct device *dev, struct resource *res,
        if (error)
                goto err_pfn_remap;
 
+       lock_device_hotplug();
        mem_hotplug_begin();
        error = arch_add_memory(nid, align_start, align_size, true);
        mem_hotplug_done();
+       unlock_device_hotplug();
        if (error)
                goto err_add_memory;