mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-28 15:13:55 +08:00
powerpc/mm: Show if a bad page fault on data is read or write.
DSISR (or ESR on some CPUs) has a bit to tell if the fault is due to a read or a write. Display it. Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Reviewed-by: Santosh Sivaraj <santosh@fossix.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/4f88d7e6fda53b5f80a71040ab400242f6c8cb93.1566400889.git.christophe.leroy@c-s.fr
This commit is contained in:
parent
c4028fa2da
commit
46ddcb3950
@ -645,6 +645,7 @@ NOKPROBE_SYMBOL(do_page_fault);
|
||||
void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
|
||||
{
|
||||
const struct exception_table_entry *entry;
|
||||
int is_write = page_fault_is_write(regs->dsisr);
|
||||
|
||||
/* Are we prepared to handle this fault? */
|
||||
if ((entry = search_exception_tables(regs->nip)) != NULL) {
|
||||
@ -658,9 +659,10 @@ void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
|
||||
case 0x300:
|
||||
case 0x380:
|
||||
case 0xe00:
|
||||
pr_alert("BUG: %s at 0x%08lx\n",
|
||||
pr_alert("BUG: %s on %s at 0x%08lx\n",
|
||||
regs->dar < PAGE_SIZE ? "Kernel NULL pointer dereference" :
|
||||
"Unable to handle kernel data access", regs->dar);
|
||||
"Unable to handle kernel data access",
|
||||
is_write ? "write" : "read", regs->dar);
|
||||
break;
|
||||
case 0x400:
|
||||
case 0x480:
|
||||
|
Loading…
Reference in New Issue
Block a user