diff options
Diffstat (limited to 'arch/nds32/mm/init.c')
| -rw-r--r-- | arch/nds32/mm/init.c | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/nds32/mm/init.c b/arch/nds32/mm/init.c index 55703b03d172..0be3833f6814 100644 --- a/arch/nds32/mm/init.c +++ b/arch/nds32/mm/init.c @@ -54,6 +54,7 @@ static void __init map_ram(void)  {  	unsigned long v, p, e;  	pgd_t *pge; +	p4d_t *p4e;  	pud_t *pue;  	pmd_t *pme;  	pte_t *pte; @@ -69,7 +70,8 @@ static void __init map_ram(void)  	while (p < e) {  		int j; -		pue = pud_offset(pge, v); +		p4e = p4d_offset(pge, v); +		pue = pud_offset(p4e, v);  		pme = pmd_offset(pue, v);  		if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) { @@ -100,6 +102,7 @@ static void __init fixedrange_init(void)  {  	unsigned long vaddr;  	pgd_t *pgd; +	p4d_t *p4d;  	pud_t *pud;  	pmd_t *pmd;  #ifdef CONFIG_HIGHMEM @@ -111,7 +114,8 @@ static void __init fixedrange_init(void)  	 */  	vaddr = __fix_to_virt(__end_of_fixed_addresses - 1);  	pgd = swapper_pg_dir + pgd_index(vaddr); -	pud = pud_offset(pgd, vaddr); +	p4d = p4d_offset(pgd, vaddr); +	pud = pud_offset(p4d, vaddr);  	pmd = pmd_offset(pud, vaddr);  	fixmap_pmd_p = memblock_alloc(PAGE_SIZE, PAGE_SIZE);  	if (!fixmap_pmd_p) @@ -126,7 +130,8 @@ static void __init fixedrange_init(void)  	vaddr = PKMAP_BASE;  	pgd = swapper_pg_dir + pgd_index(vaddr); -	pud = pud_offset(pgd, vaddr); +	p4d = p4d_offset(pgd, vaddr); +	pud = pud_offset(p4d, vaddr);  	pmd = pmd_offset(pud, vaddr);  	pte = memblock_alloc(PAGE_SIZE, PAGE_SIZE);  	if (!pte)  |