Re: [patch 1/3] x86_64: Add a notify_die() call to the "no context" part of do_page_fault()

From: Tom Rini
Date: Tue Aug 30 2005 - 09:06:29 EST


On Tue, Aug 30, 2005 at 12:33:25AM -0700, George Anzinger wrote:
> Tom Rini wrote:
> >CC: Andi Kleen <ak@xxxxxxx>
> >This adds a call to notify_die() in the "no context" portion of
> >do_page_fault() as someone on the chain might care and want to do a fixup.
> >
> >---
> >
> > linux-2.6.13-trini/arch/x86_64/mm/fault.c | 4 ++++
> > 1 files changed, 4 insertions(+)
> >
> >diff -puN arch/x86_64/mm/fault.c~x86_64-no_context_hook
> >arch/x86_64/mm/fault.c
> >--- linux-2.6.13/arch/x86_64/mm/fault.c~x86_64-no_context_hook 2005-08-29
> >11:09:13.000000000 -0700
> >+++ linux-2.6.13-trini/arch/x86_64/mm/fault.c 2005-08-29
> >11:09:13.000000000 -0700
> >@@ -514,6 +514,10 @@ no_context:
> > if (is_errata93(regs, address))
> > return;
> >
> >+ if (notify_die(DIE_PAGE_FAULT, "no context", regs, error_code, 14,
> >+ SIGSEGV) == NOTIFY_STOP)
> >+ return;
> >+
> > /*
> > * Oops. The kernel tried to access some bad page. We'll have to
> > * terminate things with extreme prejudice.
>
> Please use a more descriptive text than "no context". This bit of info
> SHOULD be available to the gdb/kgdb user and should indicate why kgdb
> was entered. It thus should be something like "bad kernel address" or
> "illegal kernel address".

"no context" is the label we're in, in the code. What it's actually
used for is "hey, we (== kgdb) tried to read/write a very very bogus
addr, time to longjmp". If it's not true that kgdb is at fault then we
drop to the debugger anyhow, and the user can see where they came from.

--
Tom Rini
http://gate.crashing.org/~trini/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/