Page MenuHomeFreeBSD

x86/intr: Handle case of disabling MSI after release
ClosedPublic

Authored by jhibbits on Jul 29 2025, 6:56 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jun 19, 7:41 PM
Unknown Object (File)
Sat, Jun 13, 8:46 PM
Unknown Object (File)
Thu, Jun 4, 4:58 PM
Unknown Object (File)
Tue, Jun 2, 9:13 AM
Unknown Object (File)
Thu, May 28, 11:04 PM
Unknown Object (File)
Thu, May 28, 10:47 PM
Unknown Object (File)
Thu, May 28, 10:36 PM
Unknown Object (File)
May 25 2026, 9:04 PM

Details

Summary

Once an interrupt source is registered it's never deregistered.
However, when an MSI is released the pointer for it becomes NULLed out,
resulting in a NULL pointer dereference when attempting to disable the
now-released MSI source. Add NULL check to avoid this.

Diff Detail

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

Event Timeline

jhibbits created this revision.
sys/x86/x86/msi.c
222

Multi-line comment should have a blank line before it. It also should formatted like this:

/*
 * Interrupt sources are always registered, but never unregistered.
...
This revision is now accepted and ready to land.Aug 13 2025, 3:48 AM
ehem_freebsd_m5p.com added inline comments.
sys/x86/x86/msi.c
227–228

Have you ever actually seen this occur?

I believe this is impossible as it would mean isrc == NULL which shouldn't ever occur.