X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fsparc%2Fmm%2Finit.c;h=c85ddf31274790e6392e9d18ed6ef6c157ab71ef;hb=16c70f8c1b54b61c3b951b6fb220df250fe09b32;hp=0bcb5c9d9285659eab8bbbc7640a61291edd5210;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/arch/sparc/mm/init.c b/arch/sparc/mm/init.c index 0bcb5c9d9..c85ddf312 100644 --- a/arch/sparc/mm/init.c +++ b/arch/sparc/mm/init.c @@ -7,7 +7,6 @@ * Copyright (C) 2000 Anton Blanchard (anton@samba.org) */ -#include #include #include #include @@ -25,13 +24,13 @@ #include #include -#include #include #include #include #include #include /* bug in asm-generic/tlb.h: check_pgt_cache */ #include +#include DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); @@ -59,9 +58,6 @@ unsigned long highstart_pfn, highend_pfn; pte_t *kmap_pte; pgprot_t kmap_prot; -EXPORT_SYMBOL(kmap_prot); -EXPORT_SYMBOL(kmap_pte); - #define kmap_get_fixmap_pte(vaddr) \ pte_offset_kernel(pmd_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr)) @@ -76,7 +72,7 @@ void show_mem(void) { printk("Mem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n", + printk("Free swap: %6ldkB\n", nr_swap_pages << (PAGE_SHIFT-10)); printk("%ld pages of RAM\n", totalram_pages); printk("%d free pages\n", nr_free_pages()); @@ -100,7 +96,7 @@ void __init sparc_context_init(int numctx) clist = (ctx_list_pool + ctx); clist->ctx_number = ctx; - clist->ctx_mm = 0; + clist->ctx_mm = NULL; } ctx_free.next = ctx_free.prev = &ctx_free; ctx_used.next = ctx_used.prev = &ctx_used; @@ -353,6 +349,7 @@ void __init paging_init(void) protection_map[14] = PAGE_SHARED; protection_map[15] = PAGE_SHARED; btfixup(); + prom_build_devicetree(); device_scan(); } @@ -387,8 +384,7 @@ void map_high_region(unsigned long start_pfn, unsigned long end_pfn) struct page *page = pfn_to_page(tmp); ClearPageReserved(page); - set_bit(PG_highmem, &page->flags); - atomic_set(&page->count, 1); + init_page_count(page); __free_page(page); totalhigh_pages++; } @@ -402,8 +398,6 @@ void __init mem_init(void) int reservedpages = 0; int i; - highmem_start_page = pfn_to_page(highstart_pfn); - if (PKMAP_BASE+LAST_PKMAP*PAGE_SIZE >= FIXADDR_START) { prom_printf("BUG: fixmap and pkmap areas overlap\n"); prom_printf("pkbase: 0x%lx pkend: 0x%lx fixstart 0x%lx\n", @@ -487,7 +481,7 @@ void free_initmem (void) p = virt_to_page(addr); ClearPageReserved(p); - set_page_count(p, 1); + init_page_count(p); __free_page(p); totalram_pages++; num_physpages++; @@ -504,7 +498,7 @@ void free_initrd_mem(unsigned long start, unsigned long end) struct page *p = virt_to_page(start); ClearPageReserved(p); - set_page_count(p, 1); + init_page_count(p); __free_page(p); num_physpages++; }