* and per-cpu initialisations
                 */
                memmap_pages = calc_memmap_size(size, realsize);
-               if (freesize >= memmap_pages) {
-                       freesize -= 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 freesize %lu\n",
-                               zone_names[j], memmap_pages, freesize);
+               if (!is_highmem_idx(j)) {
+                       if (freesize >= memmap_pages) {
+                               freesize -= 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 freesize %lu\n",
+                                       zone_names[j], memmap_pages, freesize);
+               }
 
                /* Account for reserved pages */
                if (j == 0 && freesize > dma_reserve) {