X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Farm%2Fmm%2Finit.c;fp=arch%2Farm%2Fmm%2Finit.c;h=8b276ee38acfabdb65b35e6b07903716b9db100d;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=fe3f7f6250085c5c279306ba979cde87407d19d8;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index fe3f7f625..8b276ee38 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -7,6 +7,7 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ +#include #include #include #include @@ -18,13 +19,15 @@ #include #include +#include #include -#include #include #include #include +#define TABLE_SIZE (2 * PTRS_PER_PTE * sizeof(pte_t)) + DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; @@ -453,14 +456,14 @@ static void __init devicemaps_init(struct machine_desc *mdesc) #ifdef FLUSH_BASE map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS); map.virtual = FLUSH_BASE; - map.length = SZ_1M; + map.length = PGDIR_SIZE; map.type = MT_CACHECLEAN; create_mapping(&map); #endif #ifdef FLUSH_BASE_MINICACHE - map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS + SZ_1M); + map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS + PGDIR_SIZE); map.virtual = FLUSH_BASE_MINICACHE; - map.length = SZ_1M; + map.length = PGDIR_SIZE; map.type = MT_MINICLEAN; create_mapping(&map); #endif @@ -528,7 +531,7 @@ static inline void free_area(unsigned long addr, unsigned long end, char *s) for (; addr < end; addr += PAGE_SIZE) { struct page *page = virt_to_page(addr); ClearPageReserved(page); - init_page_count(page); + set_page_count(page, 1); free_page(addr); totalram_pages++; }