sh: Get the PGD right in oops case with 64-bit PTEs.
Previously this was using a static pgd shift in the reporting code, simply flip this to PGDIR_SHIFT which does the right thing depending on varying PTE magnitudes on the SH-X2 MMU. While we're at it, and since it's been recently added, use get_TTB() for fetching the TTB, rather than the open coded instructions. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
9f650cf2b8
commit
bca7c20764
|
@ -174,11 +174,9 @@ no_context:
|
|||
printk(KERN_ALERT "Unable to handle kernel paging request");
|
||||
printk(" at virtual address %08lx\n", address);
|
||||
printk(KERN_ALERT "pc = %08lx\n", regs->pc);
|
||||
asm volatile("mov.l %1, %0"
|
||||
: "=r" (page)
|
||||
: "m" (__m(MMU_TTB)));
|
||||
page = (unsigned long)get_TTB();
|
||||
if (page) {
|
||||
page = ((unsigned long *) page)[address >> 22];
|
||||
page = ((unsigned long *) page)[address >> PGDIR_SHIFT];
|
||||
printk(KERN_ALERT "*pde = %08lx\n", page);
|
||||
if (page & _PAGE_PRESENT) {
|
||||
page &= PAGE_MASK;
|
||||
|
|
Loading…
Reference in New Issue