diff options
author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2008-02-13 06:32:34 -0500 |
---|---|---|
committer | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2008-02-13 08:44:04 -0500 |
commit | 32019828d9012e584017a824f84798248c0060dd (patch) | |
tree | 36287fd0eb2e117d61ed59b0199ea0af147493ad /arch | |
parent | e48a411fa097c386c6081f4ed5a952aa3e21ca2b (diff) |
avr32: Fix broken pte dump code in do_page_fault()
The per-task page tables only cover the first 2GiB of the address
space. For kernel addresses, we need to do the lookup in init's page
tables.
This is a temporary workaround until we modify the per-task page
tables to cover the whole 4GiB address space.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/avr32/mm/fault.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c index 6560cb18b4e3..ce4e4296b954 100644 --- a/arch/avr32/mm/fault.c +++ b/arch/avr32/mm/fault.c | |||
@@ -189,6 +189,8 @@ no_context: | |||
189 | 189 | ||
190 | page = sysreg_read(PTBR); | 190 | page = sysreg_read(PTBR); |
191 | printk(KERN_ALERT "ptbr = %08lx", page); | 191 | printk(KERN_ALERT "ptbr = %08lx", page); |
192 | if (address >= TASK_SIZE) | ||
193 | page = (unsigned long)swapper_pg_dir; | ||
192 | if (page) { | 194 | if (page) { |
193 | page = ((unsigned long *)page)[address >> 22]; | 195 | page = ((unsigned long *)page)[address >> 22]; |
194 | printk(" pgd = %08lx", page); | 196 | printk(" pgd = %08lx", page); |