x86/traps: Use an Interrupt Stack Table for #DB
authorAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 22 Mar 2018 11:27:03 +0000 (11:27 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 8 May 2018 17:13:13 +0000 (18:13 +0100)
commit5d37af364dc158aa387f7c8b2a05c90325c63dce
treea823431d96513b0c065716a961ac911c67392162
parent0c6c2b1428658687b8f603bf248dec5bdcd882a9
x86/traps: Use an Interrupt Stack Table for #DB

PV guests can use architectural corner cases to cause #DB to be raised after
transitioning into supervisor mode.

Use an interrupt stack table for #DB to prevent the exception being taken with
a guest controlled stack pointer.

This is part of XSA-260 / CVE-2018-8897

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/cpu/common.c
xen/arch/x86/traps.c
xen/arch/x86/x86_64/entry.S
xen/include/asm-x86/processor.h