x86/debug: Fix BTF handling
authorPeter Zijlstra <peterz@infradead.org>
Tue, 27 Oct 2020 09:15:05 +0000 (10:15 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 27 Oct 2020 22:15:23 +0000 (23:15 +0100)
commit2a9baf5ad4884108b3c6d56a50e8105ccf8a4ee7
treebc9ec3a80992bfac570f35708959deb34210848b
parented8780e3f2ecc82645342d070c6b4e530532e680
x86/debug: Fix BTF handling

The SDM states that #DB clears DEBUGCTLMSR_BTF, this means that when the
bit is set for userspace (TIF_BLOCKSTEP) and a kernel #DB happens first,
the BTF bit meant for userspace execution is lost.

Have the kernel #DB handler restore the BTF bit when it was requested
for userspace.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Kyle Huey <me@kylehuey.com>
Link: https://lore.kernel.org/r/20201027093607.956147736@infradead.org
arch/x86/kernel/traps.c