x86/traps: Enable DEBUG_STACK after cpu_init() for TRAP_DB/BP
authorWang Nan <wangnan0@huawei.com>
Thu, 26 Feb 2015 05:49:39 +0000 (13:49 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 31 May 2018 23:30:03 +0000 (00:30 +0100)
commit1a2ce896855bae80c079ce45d102633546a6a87f
treec4181ae992d151ea6b323d98fb77ff19b6ba630d
parent38643d20b4d4ac378046e51b15556f0f7dc489ea
x86/traps: Enable DEBUG_STACK after cpu_init() for TRAP_DB/BP

commit b4d8327024637cb2a1f7910dcb5d0ad7a096f473 upstream.

Before this patch early_trap_init() installs DEBUG_STACK for
X86_TRAP_BP and X86_TRAP_DB. However, DEBUG_STACK doesn't work
correctly until cpu_init() <-- trap_init().

This patch passes 0 to set_intr_gate_ist() and
set_system_intr_gate_ist() instead of DEBUG_STACK to let it use
same stack as kernel, and installs DEBUG_STACK for them in
trap_init().

As core runs at ring 0 between early_trap_init() and
trap_init(), there is no chance to get a bad stack before
trap_init().

As NMI is also enabled in trap_init(), we don't need to care
about is_debug_stack() and related things used in
arch/x86/kernel/nmi.c.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: <dave.hansen@linux.intel.com>
Cc: <lizefan@huawei.com>
Cc: <luto@amacapital.net>
Cc: <oleg@redhat.com>
Link: http://lkml.kernel.org/r/1424929779-13174-1-git-send-email-wangnan0@huawei.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/x86/kernel/traps.c