CVE-2026-64430 PUBLISHED

NTB: epf: Avoid calling pci_irq_vector() from hardirq context

Assigner: Linux
Reserved: 19.07.2026 Published: 25.07.2026 Updated: 25.07.2026

In the Linux kernel, the following vulnerability has been resolved:

NTB: epf: Avoid calling pci_irq_vector() from hardirq context

ntb_epf_vec_isr() calls pci_irq_vector() in hardirq context to derive the vector number. pci_irq_vector() calls msi_get_virq() that takes a mutex and can therefore trigger "scheduling while atomic" splats:

BUG: scheduling while atomic: kworker/u33:0/55/0x00010001 ... Call trace: ... schedule+0x38/0x110 schedule_preempt_disabled+0x28/0x50 __mutex_lock.constprop.0+0x848/0x908 __mutex_lock_slowpath+0x18/0x30 mutex_lock+0x4c/0x60 msi_domain_get_virq+0xe8/0x138 pci_irq_vector+0x2c/0x60 ntb_epf_vec_isr+0x28/0x120 [ntb_hw_epf] __handle_irq_event_percpu+0x70/0x3a8 handle_irq_event+0x48/0x100 handle_edge_irq+0x100/0x1c8 ...

Cache the Linux IRQ number for vector 0 when vectors are allocated and use it as a base in the ISR. Running the ISR in a threaded IRQ handler would also avoid the problem, but that would be unnecessary here.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 812ce2f8d14ea791edd88c36ebcc9017bf4c88cb to 33bba331a4a5fee8b6026fe72eca13cceeec1b7b (excl.)
  • affected from 812ce2f8d14ea791edd88c36ebcc9017bf4c88cb to aff271b12a1eb8c8b3da19223ae1a6abe1e8168b (excl.)
  • affected from 812ce2f8d14ea791edd88c36ebcc9017bf4c88cb to 1dba8444ac0100133d72374634f6d7451fff1ccc (excl.)
  • affected from 812ce2f8d14ea791edd88c36ebcc9017bf4c88cb to 174a97f21bf9c54fa37ec0f321692e862ea130a3 (excl.)
  • affected from 812ce2f8d14ea791edd88c36ebcc9017bf4c88cb to f71e8d9875069fa73e335f63f02ec6e52e3aaa51 (excl.)
  • affected from 812ce2f8d14ea791edd88c36ebcc9017bf4c88cb to 6350df503897d57c5634f71b0767d48c3b837583 (excl.)
  • affected from 812ce2f8d14ea791edd88c36ebcc9017bf4c88cb to 4dcddc1c794d1c65eda68f1f8dd04a0fecc0870f (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 5.12 is affected
  • unaffected from 0 to 5.12 (excl.)
  • unaffected from 5.15.212 to 5.15.* (incl.)
  • unaffected from 6.1.178 to 6.1.* (incl.)
  • unaffected from 6.6.145 to 6.6.* (incl.)
  • unaffected from 6.12.96 to 6.12.* (incl.)
  • unaffected from 6.18.39 to 6.18.* (incl.)
  • unaffected from 7.1.4 to 7.1.* (incl.)
  • unaffected from 7.2-rc1 to * (incl.)

References