diff options
Diffstat (limited to 'arch/ia64/mm/contig.c')
| -rw-r--r-- | arch/ia64/mm/contig.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index 8919fed9666a..e004143ba86b 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | 27 | ||
| 28 | #ifdef CONFIG_VIRTUAL_MEM_MAP | 28 | #ifdef CONFIG_VIRTUAL_MEM_MAP |
| 29 | static unsigned long num_dma_physpages; | 29 | static unsigned long num_dma_physpages; |
| 30 | static unsigned long max_gap; | ||
| 30 | #endif | 31 | #endif |
| 31 | 32 | ||
| 32 | /** | 33 | /** |
| @@ -45,9 +46,15 @@ show_mem (void) | |||
| 45 | 46 | ||
| 46 | printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); | 47 | printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); |
| 47 | i = max_mapnr; | 48 | i = max_mapnr; |
| 48 | while (i-- > 0) { | 49 | for (i = 0; i < max_mapnr; i++) { |
| 49 | if (!pfn_valid(i)) | 50 | if (!pfn_valid(i)) { |
| 51 | #ifdef CONFIG_VIRTUAL_MEM_MAP | ||
| 52 | if (max_gap < LARGE_GAP) | ||
| 53 | continue; | ||
| 54 | i = vmemmap_find_next_valid_pfn(0, i) - 1; | ||
| 55 | #endif | ||
| 50 | continue; | 56 | continue; |
| 57 | } | ||
| 51 | total++; | 58 | total++; |
| 52 | if (PageReserved(mem_map+i)) | 59 | if (PageReserved(mem_map+i)) |
| 53 | reserved++; | 60 | reserved++; |
| @@ -234,7 +241,6 @@ paging_init (void) | |||
| 234 | unsigned long zones_size[MAX_NR_ZONES]; | 241 | unsigned long zones_size[MAX_NR_ZONES]; |
| 235 | #ifdef CONFIG_VIRTUAL_MEM_MAP | 242 | #ifdef CONFIG_VIRTUAL_MEM_MAP |
| 236 | unsigned long zholes_size[MAX_NR_ZONES]; | 243 | unsigned long zholes_size[MAX_NR_ZONES]; |
| 237 | unsigned long max_gap; | ||
| 238 | #endif | 244 | #endif |
| 239 | 245 | ||
| 240 | /* initialize mem_map[] */ | 246 | /* initialize mem_map[] */ |
| @@ -266,7 +272,6 @@ paging_init (void) | |||
| 266 | } | 272 | } |
| 267 | } | 273 | } |
| 268 | 274 | ||
| 269 | max_gap = 0; | ||
| 270 | efi_memmap_walk(find_largest_hole, (u64 *)&max_gap); | 275 | efi_memmap_walk(find_largest_hole, (u64 *)&max_gap); |
| 271 | if (max_gap < LARGE_GAP) { | 276 | if (max_gap < LARGE_GAP) { |
| 272 | vmem_map = (struct page *) 0; | 277 | vmem_map = (struct page *) 0; |
