x86/xen: Use specific Xen pv interrupt entry for DF
Xen PV guests don't use IST. For double fault interrupts, switch to the same model as NMI. Correct a typo in a comment while copying it. Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/20210120135555.32594-4-jgross@suse.com
This commit is contained in:
parent
c3d7fa6684
commit
5b4c6d6501
@ -608,6 +608,9 @@ DECLARE_IDTENTRY_RAW(X86_TRAP_DB, xenpv_exc_debug);
|
||||
|
||||
/* #DF */
|
||||
DECLARE_IDTENTRY_DF(X86_TRAP_DF, exc_double_fault);
|
||||
#ifdef CONFIG_XEN_PV
|
||||
DECLARE_IDTENTRY_RAW_ERRORCODE(X86_TRAP_DF, xenpv_exc_double_fault);
|
||||
#endif
|
||||
|
||||
/* #VC */
|
||||
#ifdef CONFIG_AMD_MEM_ENCRYPT
|
||||
|
@ -567,10 +567,16 @@ void noist_exc_debug(struct pt_regs *regs);
|
||||
|
||||
DEFINE_IDTENTRY_RAW(xenpv_exc_nmi)
|
||||
{
|
||||
/* On Xen PV, NMI doesn't use IST. The C part is the sane as native. */
|
||||
/* On Xen PV, NMI doesn't use IST. The C part is the same as native. */
|
||||
exc_nmi(regs);
|
||||
}
|
||||
|
||||
DEFINE_IDTENTRY_RAW_ERRORCODE(xenpv_exc_double_fault)
|
||||
{
|
||||
/* On Xen PV, DF doesn't use IST. The C part is the same as native. */
|
||||
exc_double_fault(regs, error_code);
|
||||
}
|
||||
|
||||
DEFINE_IDTENTRY_RAW(xenpv_exc_debug)
|
||||
{
|
||||
/*
|
||||
@ -622,7 +628,7 @@ struct trap_array_entry {
|
||||
|
||||
static struct trap_array_entry trap_array[] = {
|
||||
TRAP_ENTRY_REDIR(exc_debug, true ),
|
||||
TRAP_ENTRY(exc_double_fault, true ),
|
||||
TRAP_ENTRY_REDIR(exc_double_fault, true ),
|
||||
#ifdef CONFIG_X86_MCE
|
||||
TRAP_ENTRY_REDIR(exc_machine_check, true ),
|
||||
#endif
|
||||
|
@ -161,7 +161,7 @@ xen_pv_trap asm_exc_overflow
|
||||
xen_pv_trap asm_exc_bounds
|
||||
xen_pv_trap asm_exc_invalid_op
|
||||
xen_pv_trap asm_exc_device_not_available
|
||||
xen_pv_trap asm_exc_double_fault
|
||||
xen_pv_trap asm_xenpv_exc_double_fault
|
||||
xen_pv_trap asm_exc_coproc_segment_overrun
|
||||
xen_pv_trap asm_exc_invalid_tss
|
||||
xen_pv_trap asm_exc_segment_not_present
|
||||
|
Loading…
Reference in New Issue
Block a user