X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Farm%2Fmm%2Finit.c;h=c183e6537114be0dcb7d92c365cffcacd182b2a0;hb=4df52aa9a6dd8cb5fff67da03cdfa58a3c607912;hp=060fea2e10cb03eac364ca35974a97c150bc7e4d;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 060fea2e1..c183e6537 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -24,7 +24,13 @@ #include #include -#define TABLE_SIZE (2 * PTRS_PER_PTE * sizeof(pte_t)) +#ifdef CONFIG_CPU_32 +#define TABLE_OFFSET (PTRS_PER_PTE) +#else +#define TABLE_OFFSET 0 +#endif + +#define TABLE_SIZE ((TABLE_OFFSET + PTRS_PER_PTE) * sizeof(pte_t)) DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); @@ -283,13 +289,14 @@ static __init void reserve_node_zero(unsigned int bootmap_pfn, unsigned int boot */ reserve_bootmem_node(pgdat, __pa(&_stext), &_end - &_stext); +#ifdef CONFIG_CPU_32 /* * Reserve the page tables. These are already in use, * and can only be in node 0. */ reserve_bootmem_node(pgdat, __pa(swapper_pg_dir), PTRS_PER_PGD * sizeof(pgd_t)); - +#endif /* * And don't forget to reserve the allocator bitmap, * which will be freed later. @@ -495,7 +502,7 @@ void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc) */ arch_adjust_zones(node, zone_size, zhole_size); - free_area_init_node(node, pgdat, NULL, zone_size, + free_area_init_node(node, pgdat, 0, zone_size, bdata->node_boot_start >> PAGE_SHIFT, zhole_size); }