Re: [tip:x86/mm] x86/fault: Decode and print #PF oops in human readable form
From: Borislav Petkov
Date: Sun Apr 21 2019 - 14:36:45 EST
On Fri, Apr 19, 2019 at 11:35:51AM -0700, tip-bot for Sean Christopherson wrote:
> BUG: kernel NULL pointer dereference, address = 0000000000000008
> #PF: supervisor-privileged instruction fetch from kernel code
> #PF: error_code(0x0010) - not-present page
>
> BUG: unable to handle page fault for address = ffffbeef00000000
> #PF: supervisor-privileged instruction fetch from kernel code
> #PF: error_code(0x0010) - not-present page
>
> BUG: unable to handle page fault for address = ffffc90000230000
> #PF: supervisor-privileged write access from kernel code
> #PF: error_code(0x000b) - reserved bit violation
Writing those in human-readable form is nice. May I suggest making those
messages more succinct, though - we'll be staring at them for years,
after all.
---
From: Borislav Petkov <bp@xxxxxxx>
Date: Sun, 21 Apr 2019 20:24:08 +0200
Subject: [PATCH] x86/fault: Make fault messages more succinct
So we are going to be staring at those in the next years, let's make
them more succinct. In particular:
- change "address = " to "address: "
- "-privileged" reads funny. It should be simply "kernel" or "user"
- "from kernel code" reads funny too. "kernel mode" or "user mode" is
more natural.
An actual example says more than 1000 words, of course:
[ 0.248370] BUG: kernel NULL pointer dereference, address: 00000000000005b8
[ 0.249120] #PF: supervisor write access in kernel mode
[ 0.249717] #PF: error_code(0x0002) - not-present page
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
---
arch/x86/mm/fault.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 74c9204c5751..a0df19b0897d 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -630,13 +630,13 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code, unsigned long ad
}
if (address < PAGE_SIZE && !user_mode(regs))
- pr_alert("BUG: kernel NULL pointer dereference, address = %px\n",
+ pr_alert("BUG: kernel NULL pointer dereference, address: %px\n",
(void *)address);
else
- pr_alert("BUG: unable to handle page fault for address = %px\n",
+ pr_alert("BUG: unable to handle page fault for address: %px\n",
(void *)address);
- pr_alert("#PF: %s-privileged %s from %s code\n",
+ pr_alert("#PF: %s %s in %s mode\n",
(error_code & X86_PF_USER) ? "user" : "supervisor",
(error_code & X86_PF_INSTR) ? "instruction fetch" :
(error_code & X86_PF_WRITE) ? "write access" :
--
2.21.0
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.