aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/memory_hotplug.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 57decb29e056..c916582591eb 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -705,8 +705,10 @@ EXPORT_SYMBOL_GPL(__add_pages);
705int __remove_pages(struct zone *zone, unsigned long phys_start_pfn, 705int __remove_pages(struct zone *zone, unsigned long phys_start_pfn,
706 unsigned long nr_pages) 706 unsigned long nr_pages)
707{ 707{
708 unsigned long i, ret = 0; 708 unsigned long i;
709 int sections_to_remove; 709 int sections_to_remove;
710 resource_size_t start, size;
711 int ret = 0;
710 712
711 /* 713 /*
712 * We can only remove entire sections 714 * We can only remove entire sections
@@ -714,7 +716,12 @@ int __remove_pages(struct zone *zone, unsigned long phys_start_pfn,
714 BUG_ON(phys_start_pfn & ~PAGE_SECTION_MASK); 716 BUG_ON(phys_start_pfn & ~PAGE_SECTION_MASK);
715 BUG_ON(nr_pages % PAGES_PER_SECTION); 717 BUG_ON(nr_pages % PAGES_PER_SECTION);
716 718
717 release_mem_region(phys_start_pfn << PAGE_SHIFT, nr_pages * PAGE_SIZE); 719 start = phys_start_pfn << PAGE_SHIFT;
720 size = nr_pages * PAGE_SIZE;
721 ret = release_mem_region_adjustable(&iomem_resource, start, size);
722 if (ret)
723 pr_warn("Unable to release resource <%016llx-%016llx> (%d)\n",
724 start, start + size - 1, ret);
718 725
719 sections_to_remove = nr_pages / PAGES_PER_SECTION; 726 sections_to_remove = nr_pages / PAGES_PER_SECTION;
720 for (i = 0; i < sections_to_remove; i++) { 727 for (i = 0; i < sections_to_remove; i++) {