msi_domain_...range_locked(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ msi_domain_free_irqs_range_locked β€” the kernel API manual page, bestie edition πŸ’…

okay so this is straight out of the Kernel API Manual (yes, the msi_domain_...range_locked(9) one, that's our girl) and it's genuinely so specific and I'm obsessed. let's get into it 🫢


🌸 NAME 🌸

msi_domain_free_irqs_range_locked β€” frees a whole range of interrupts from an MSI interrupt domain that's associated to @dev, and does it with msi_lock held. like, the lock is already yours, you're just doing the thing πŸ”₯


✨ SYNOPSIS ✨

void msi_domain_free_irqs_range_locked (struct device *dev , unsigned
int domid , unsigned int first , unsigned int last );

that's the whole signature. returns nothing (void), takes four things, slays πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • dev β€” pointer to the device struct of the device whose interrupts are getting freed. it's her device, we're cleaning up her stuff 🌸
  • domid β€” the id of the interrupt domain we're operating on. gotta know which domain you're in iykyk πŸ¦‹
  • first β€” the first index to free, and yes it's inclusive πŸ’–
  • last β€” the last index to free, also inclusive. so the range is first..last, both ends in, no cap 🌈

πŸ”₯ SEE ALSO πŸ”₯

the whole friend group, in the original order, no one gets left out πŸ‘‘

Kernel file ./kernel/irq/msi.c, plus:

lowkey the most important vibe check here: the _locked in the name is not decorative, bestie β€” this one expects msi_lock to already be held. don't come in unlocked, that's not the move πŸ’€

and that's the page!! this lil icon comes to you from ./kernel/irq, dated October 2026 β€” mwah, go free those interrupts responsibly πŸ’–πŸŽ€βœ¨

πŸ“¦ where this page comes from