x86/debug: Handle warnings before the notifier chain, to fix KGDB crash
authorAlexander Shishkin <[email protected]>
Mon, 24 Jul 2017 10:04:28 +0000 (13:04 +0300)
committerIngo Molnar <[email protected]>
Fri, 10 Nov 2017 07:04:19 +0000 (08:04 +0100)
commitb8347c2196492f4e1cccde3d92fda1cc2cc7de7e
tree5de43435f937ffaa8ea5525517c5aef848faf2bb
parentbe739f4b5ddece74ef25e2304b17a7fd24575e9b
x86/debug: Handle warnings before the notifier chain, to fix KGDB crash

Commit:

  9a93848fe787 ("x86/debug: Implement __WARN() using UD0")

turned warnings into UD0, but the fixup code only runs after the
notify_die() chain. This is a problem, in particular, with kgdb,
which kicks in as if it was a BUG().

Fix this by running the fixup code before the notifier chain in
the invalid op handler path.

Signed-off-by: Alexander Shishkin <[email protected]>
Tested-by: Ilya Dryomov <[email protected]>
Acked-by: Daniel Thompson <[email protected]>
Acked-by: Thomas Gleixner <[email protected]>
Cc: Jason Wessel <[email protected]>
Cc: Arjan van de Ven <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Richard Weinberger <[email protected]>
Cc: <[email protected]> # v4.12+
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
arch/x86/kernel/traps.c