diff options
Diffstat (limited to 'arch/sh/mm/init.c')
| -rw-r--r-- | arch/sh/mm/init.c | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index 4abf00031da..6cbef8caeb5 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c @@ -137,6 +137,7 @@ void __init page_table_range_init(unsigned long start, unsigned long end,  void __init paging_init(void)  {  	unsigned long max_zone_pfns[MAX_NR_ZONES]; +	unsigned long vaddr;  	int nid;  	/* We don't need to map the kernel through the TLB, as @@ -148,10 +149,15 @@ void __init paging_init(void)  	 * check for a null value. */  	set_TTB(swapper_pg_dir); -	/* Populate the relevant portions of swapper_pg_dir so that +	/* +	 * Populate the relevant portions of swapper_pg_dir so that  	 * we can use the fixmap entries without calling kmalloc. -	 * pte's will be filled in by __set_fixmap(). */ -	page_table_range_init(FIXADDR_START, FIXADDR_TOP, swapper_pg_dir); +	 * pte's will be filled in by __set_fixmap(). +	 */ +	vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK; +	page_table_range_init(vaddr, 0, swapper_pg_dir); + +	kmap_coherent_init();  	memset(max_zone_pfns, 0, sizeof(max_zone_pfns));  |