Commit 1fbe92c39e72 for kernel

commit 1fbe92c39e72f6baf1ebda5a21c54442865d9622
Merge: a56a18c14aea e74798f2f8e1
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Oct 21 11:05:37 2026 -1000

    Merge tag 'irq-core-2026-10-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull irq updates from Thomas Gleixner:
     "Updates for the generic interrupt subsystem:

       - Skip programming of MSI/MSI-X related data while a PCI channel is
         offline (Link is down) in the error recovery code path. Accessing
         an offline channel results in a BUS error which affects the
         underlying Root Port.

         Check for pci_channel_offline() and if true avoid the writes and
         just cache the modifications which are subsequently applied when
         the Link has recovered.

       - Prevent a stack UAF when a faulting interrupt thread exits. On X86
         the crash causes the stack to be discarded, which contains the
         callback head for the exit task_work to run the destructor. If the
         stack is clobbered before the destructor runs, then the indirect
         call of the task work function ends up in a random place. Move the
         callback head into the interrupt action to prevent that.

       - Prevent an UAF in the interrupt thread exit code which can happen
         when a faulting interrupt thread exits and races with a concurrent
         free_irq() by synchronizing free_irq() against thread exit.

       - Ensure that interrupt context accounting is accurate on interrupt
         return when checking for soft interrupt invocation.

         The code removed the hard interrupt context prematurely so that the
         subsequent code appeared to be in task context according to the
         preempt counter. That confuses ftrace, perf and K*SAN which get
         their recording context wrong. On Preempt-RT this can result in
         misbehaviour when BPF programs are attached to the affected region.

         Cure it by preserving the hard interrupt count up to the point
         where soft interrupts are actually invoked and switch directly to
         soft interrupt processing right there. That avoids the intermediate
         "in task context" state.

       - The usual small fixes and improvements"

    * tag 'irq-core-2026-10-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      genirq/proc: Fix missing CPU header in /proc/interrupts
      PCI/MSI: Skip MSI/MSI-X programming while the channel is offline
      genirq: Fix typos in comments
      genirq: Move interrupt thread exit_work object to irqaction
      genirq: Defer kfree(irqaction) until irq_thread_dtor() finishes
      softirq: Preserve interrupt context on return from interrupt
      softirq: Remove redundant h->action from preempt_count mismatch error
      genirq: Discard cpumask of irqaffinity= boot parameter if parsing fails