Page MenuHomeFreeBSD

pci: Only re-route IRQs based on firmware on x86
ClosedPublic

Authored by cperciva on Mar 28 2025, 6:12 PM.
Tags
None
Referenced Files
F133201475: D49560.diff
Thu, Oct 23, 10:22 PM
Unknown Object (File)
Thu, Oct 23, 6:14 PM
Unknown Object (File)
Thu, Oct 23, 6:04 PM
Unknown Object (File)
Tue, Oct 21, 10:10 PM
Unknown Object (File)
Wed, Oct 15, 11:39 PM
Unknown Object (File)
Mon, Sep 29, 11:48 PM
Unknown Object (File)
Fri, Sep 26, 5:56 AM
Unknown Object (File)
Sep 21 2025, 9:01 PM

Details

Summary

There is a (very historical) call to pci_assign_interrupt for the
purpose of routing IRQs which may have been set up wrong by x86 BIOS
or firmware. On non-x86 systems, this is unnecessary; and on INTRNG
systems it results in a (synthetic) IRQ leak and ultimately a kernel
panic after many hotplug/unplug cycles.

Suggested by: jhb
MFC after: 2 weeks
Sponsored by: Amazon

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 63186
Build 60070: arc lint + arc unit

Event Timeline

cperciva created this revision.
This revision is now accepted and ready to land.Mar 28 2025, 6:43 PM

Could it bring a new flow of messages into the kernel message buffer? After today's upgrade of my desktop PC, I see plenty of "Can't enable IRQ/MSI because no handler is installed," which didn't appear in the past.

It was triggered by D49543 (likely) and seems to be harmless so far.