From f47706099bdb8c0e6300d6f5ba8e542861aa3ac5 Mon Sep 17 00:00:00 2001 From: Stefan Kristiansson Date: Sat, 11 Jan 2014 00:17:38 +0200 Subject: openrisc: fix PTRS_PER_PGD define On OpenRISC, with its 8k pages, PAGE_SHIFT is defined to be 13. That makes the expression (1UL << (PAGE_SHIFT-2)) evaluate to 2048. The correct value for PTRS_PER_PGD should be 256. Correcting the PTRS_PER_PGD define unveiled a bug in map_ram(), where PTRS_PER_PGD was used when the intent was to iterate over a set of page table entries. This patch corrects that issue as well. Signed-off-by: Stefan Kristiansson Acked-by: Jonas Bonn Tested-by: Guenter Roeck Signed-off-by: Stafford Horne --- arch/openrisc/mm/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/openrisc/mm/init.c') diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c index 7f94652311d7..b782ce9ccad9 100644 --- a/arch/openrisc/mm/init.c +++ b/arch/openrisc/mm/init.c @@ -110,7 +110,7 @@ static void __init map_ram(void) set_pmd(pme, __pmd(_KERNPG_TABLE + __pa(pte))); /* Fill the newly allocated page with PTE'S */ - for (j = 0; p < e && j < PTRS_PER_PGD; + for (j = 0; p < e && j < PTRS_PER_PTE; v += PAGE_SIZE, p += PAGE_SIZE, j++, pte++) { if (v >= (u32) _e_kernel_ro || v < (u32) _s_kernel_ro) -- cgit v1.2.3-59-g8ed1b