diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index ecf853b5e30ec5bd85a2ec29b68292282838cbcd..b55bb358b832975265043df8375dc523c2b3d807 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2261,7 +2261,7 @@ unsigned long __init __absent_pages_in_range(int nid,
 
 	/* Account for ranges past physical memory on this node */
 	if (range_end_pfn > prev_end_pfn)
-		hole_pages = range_end_pfn -
+		hole_pages += range_end_pfn -
 				max(range_start_pfn, prev_end_pfn);
 
 	return hole_pages;