mm: Fix zone->present_pages underflow
If offlined_pages is greater than
zone->present_pages, underflow will occur.
This change will set zone->present_pages to 0 if
offlined_pages is greater.
Change-Id: I728e90c60fb7fc391de7b9c4828ab264ca38653b
Signed-off-by: Jack Cheung <jackc@codeaurora.org>
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 709dc6d..faf318e 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -958,7 +958,10 @@
/* reset pagetype flags and makes migrate type to be MOVABLE */
undo_isolate_page_range(start_pfn, end_pfn);
/* removal success */
- zone->present_pages -= offlined_pages;
+ if (offlined_pages > zone->present_pages)
+ zone->present_pages = 0;
+ else
+ zone->present_pages -= offlined_pages;
zone->zone_pgdat->node_present_pages -= offlined_pages;
totalram_pages -= offlined_pages;