[PATCH 0/6] x86/irq: trap and interrupt cleanups

From: H. Peter Anvin
Date: Mon May 10 2021 - 20:56:04 EST


From: "H. Peter Anvin (Intel)" <hpa@xxxxxxxxx>

A collection of trap/interrupt-related patches, almost all
cleanups. The only patches that should have any possible effect at all
are:

4/6 - x86/irq: merge common code in DEFINE_IDTENTRY_SYSVEC[_SIMPLE]

This patch reverses kvm_set_cpu_l1tf_flush_l1d() and
__irq_enter_raw() in DEFINE_IDTENTRY_SYSVEC_SIMPLE() in order
to be able to unify the code with DEFINE_IDTENTRY_SYSVEC().

The reason for unification is mainly to avoid the possibility
of inadvertent divergence rather than the rather modest amount
of code.

5/6 - x86/irq: WARN_ONCE() if irq_move_cleanup is called on a pending interrupt

This condition is believed to be impossible after many
improvements to the IRQ vector allocation code since this
function was written. Per discussion with tglx, add a
WARN_ONCE() if this happens as a first step towards excising
this hack.

---
x86/traps: add X86_NR_HW_TRAPS to <asm/trapnr.h>
x86/irqvector: add NR_EXTERNAL_VECTORS and NR_SYSTEM_VECTORS
x86/idt: remove address argument to idt_invalidate()
x86/irq: merge common code in DEFINE_IDTENTRY_SYSVEC[_SIMPLE]
x86/irq: WARN_ONCE() if irq_move_cleanup is called on a pending interrupt
x86/irq: remove unused vectors from <asm/irq_vectors.h>

arch/x86/include/asm/desc.h | 2 +-
arch/x86/include/asm/idtentry.h | 39 +++++++++++++++++---------------
arch/x86/include/asm/irq_vectors.h | 7 ++++--
arch/x86/include/asm/trapnr.h | 1 +
arch/x86/kernel/apic/vector.c | 5 ++++
arch/x86/kernel/idt.c | 5 ++--
arch/x86/kernel/machine_kexec_32.c | 4 ++--
arch/x86/kernel/reboot.c | 2 +-
tools/arch/x86/include/asm/irq_vectors.h | 7 ++++--
9 files changed, 43 insertions(+), 29 deletions(-)