diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index d8ac01474563954fed58a1f87e2249c99827c430..2f644c3e3da378baf0f186cb406e717b20ad4932 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3469,9 +3469,10 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 			PAGE_ALIGN(size * sizeof(struct page)) >> PAGE_SHIFT;
 		if (realsize >= memmap_pages) {
 			realsize -= memmap_pages;
-			printk(KERN_DEBUG
-				"  %s zone: %lu pages used for memmap\n",
-				zone_names[j], memmap_pages);
+			if (memmap_pages)
+				printk(KERN_DEBUG
+				       "  %s zone: %lu pages used for memmap\n",
+				       zone_names[j], memmap_pages);
 		} else
 			printk(KERN_WARNING
 				"  %s zone: %lu pages exceeds realsize %lu\n",