diff options
Diffstat (limited to 'arch/ppc/mm/init.c')
-rw-r--r-- | arch/ppc/mm/init.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/arch/ppc/mm/init.c b/arch/ppc/mm/init.c index 134db5c04203..386e000bcb73 100644 --- a/arch/ppc/mm/init.c +++ b/arch/ppc/mm/init.c | |||
@@ -140,7 +140,7 @@ static void free_sec(unsigned long start, unsigned long end, const char *name) | |||
140 | 140 | ||
141 | while (start < end) { | 141 | while (start < end) { |
142 | ClearPageReserved(virt_to_page(start)); | 142 | ClearPageReserved(virt_to_page(start)); |
143 | set_page_count(virt_to_page(start), 1); | 143 | init_page_count(virt_to_page(start)); |
144 | free_page(start); | 144 | free_page(start); |
145 | cnt++; | 145 | cnt++; |
146 | start += PAGE_SIZE; | 146 | start += PAGE_SIZE; |
@@ -172,7 +172,7 @@ void free_initrd_mem(unsigned long start, unsigned long end) | |||
172 | 172 | ||
173 | for (; start < end; start += PAGE_SIZE) { | 173 | for (; start < end; start += PAGE_SIZE) { |
174 | ClearPageReserved(virt_to_page(start)); | 174 | ClearPageReserved(virt_to_page(start)); |
175 | set_page_count(virt_to_page(start), 1); | 175 | init_page_count(virt_to_page(start)); |
176 | free_page(start); | 176 | free_page(start); |
177 | totalram_pages++; | 177 | totalram_pages++; |
178 | } | 178 | } |
@@ -412,14 +412,6 @@ void __init mem_init(void) | |||
412 | } | 412 | } |
413 | #endif /* CONFIG_BLK_DEV_INITRD */ | 413 | #endif /* CONFIG_BLK_DEV_INITRD */ |
414 | 414 | ||
415 | #ifdef CONFIG_PPC_OF | ||
416 | /* mark the RTAS pages as reserved */ | ||
417 | if ( rtas_data ) | ||
418 | for (addr = (ulong)__va(rtas_data); | ||
419 | addr < PAGE_ALIGN((ulong)__va(rtas_data)+rtas_size) ; | ||
420 | addr += PAGE_SIZE) | ||
421 | SetPageReserved(virt_to_page(addr)); | ||
422 | #endif | ||
423 | for (addr = PAGE_OFFSET; addr < (unsigned long)high_memory; | 415 | for (addr = PAGE_OFFSET; addr < (unsigned long)high_memory; |
424 | addr += PAGE_SIZE) { | 416 | addr += PAGE_SIZE) { |
425 | if (!PageReserved(virt_to_page(addr))) | 417 | if (!PageReserved(virt_to_page(addr))) |
@@ -441,7 +433,7 @@ void __init mem_init(void) | |||
441 | struct page *page = mem_map + pfn; | 433 | struct page *page = mem_map + pfn; |
442 | 434 | ||
443 | ClearPageReserved(page); | 435 | ClearPageReserved(page); |
444 | set_page_count(page, 1); | 436 | init_page_count(page); |
445 | __free_page(page); | 437 | __free_page(page); |
446 | totalhigh_pages++; | 438 | totalhigh_pages++; |
447 | } | 439 | } |
@@ -494,11 +486,6 @@ set_phys_avail(unsigned long total_memory) | |||
494 | initrd_end - initrd_start, 1); | 486 | initrd_end - initrd_start, 1); |
495 | } | 487 | } |
496 | #endif /* CONFIG_BLK_DEV_INITRD */ | 488 | #endif /* CONFIG_BLK_DEV_INITRD */ |
497 | #ifdef CONFIG_PPC_OF | ||
498 | /* remove the RTAS pages from the available memory */ | ||
499 | if (rtas_data) | ||
500 | mem_pieces_remove(&phys_avail, rtas_data, rtas_size, 1); | ||
501 | #endif | ||
502 | } | 489 | } |
503 | 490 | ||
504 | /* Mark some memory as reserved by removing it from phys_avail. */ | 491 | /* Mark some memory as reserved by removing it from phys_avail. */ |