Commit bca7c207 authored by Paul Mundt's avatar Paul Mundt
Browse files

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: default avatarPaul Mundt <lethal@linux-sh.org>
parent 9f650cf2
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -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;