x86/debug: Handle warnings before the notifier chain, to fix KGDB crash
authorAlexander Shishkin <alexander.shishkin@linux.intel.com>
Mon, 24 Jul 2017 10:04:28 +0000 (13:04 +0300)
committerIngo Molnar <mingo@kernel.org>
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 <alexander.shishkin@linux.intel.com>
Tested-by: Ilya Dryomov <idryomov@gmail.com>
Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Richard Weinberger <richard.weinberger@gmail.com>
Cc: <stable@vger.kernel.org> # v4.12+
Link: http://lkml.kernel.org/r/20170724100428.19173-1-alexander.shishkin@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/kernel/traps.c