• Linus Torvalds's avatar
    Merge tag 'x86-entry-2021-02-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 29c395c7
    Linus Torvalds authored
    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
    29c395c7
Kconfig 35.6 KB