Merge tag 'x86-entry-2021-02-24' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 25 Feb 2021 00:32:23 +0000 (16:32 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 25 Feb 2021 00:32:23 +0000 (16:32 -0800)
commit29c395c77a9a514c5857c45ceae2665e9bd99ac7
treeeacced75a6641c17060456cbdcfaef797a66235a
parent4c48faba5b7f18fb53e4aeeb768932f17c9da1ed
parent724c8a23d589d8a002d2e39633c2f9a5a429616f
Merge tag 'x86-entry-2021-02-24' of git://git./linux/kernel/git/tip/tip

Pull x86 irq entry updates from Thomas Gleixner:
 "The irq stack switching was moved out of the ASM entry code in course
  of the entry code consolidation. It ended up being suboptimal in
  various ways.

  This reworks the X86 irq stack handling:

   - Make the stack switching inline so the stackpointer manipulation is
     not longer at an easy to find place.

   - Get rid of the unnecessary indirect call.

   - Avoid the double stack switching in interrupt return and reuse the
     interrupt stack for softirq handling.

   - A objtool fix for CONFIG_FRAME_POINTER=y builds where it got
     confused about the stack pointer manipulation"

* tag 'x86-entry-2021-02-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  objtool: Fix stack-swizzle for FRAME_POINTER=y
  um: Enforce the usage of asm-generic/softirq_stack.h
  x86/softirq/64: Inline do_softirq_own_stack()
  softirq: Move do_softirq_own_stack() to generic asm header
  softirq: Move __ARCH_HAS_DO_SOFTIRQ to Kconfig
  x86: Select CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
  x86/softirq: Remove indirection in do_softirq_own_stack()
  x86/entry: Use run_sysvec_on_irqstack_cond() for XEN upcall
  x86/entry: Convert device interrupts to inline stack switching
  x86/entry: Convert system vectors to irq stack macro
  x86/irq: Provide macro for inlining irq stack switching
  x86/apic: Split out spurious handling code
  x86/irq/64: Adjust the per CPU irq stack pointer by 8
  x86/irq: Sanitize irq stack tracking
  x86/entry: Fix instrumentation annotation
17 files changed:
arch/Kconfig
arch/parisc/Kconfig
arch/parisc/kernel/irq.c
arch/powerpc/Kconfig
arch/powerpc/kernel/irq.c
arch/s390/Kconfig
arch/s390/kernel/irq.c
arch/sh/Kconfig
arch/sparc/Kconfig
arch/um/include/asm/Kbuild
arch/x86/Kconfig
arch/x86/include/asm/irq.h
arch/x86/kernel/apic/apic.c
arch/x86/kernel/cpu/common.c
arch/x86/kernel/irq.c
include/asm-generic/Kbuild
tools/objtool/check.c