msi_domain_...range_locked(9)
β¨ 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 thedevicestruct 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 isfirst..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:
struct msi_device_data(9)struct msi_ctrl(9)msi_alloc_desc(9)msi_domain_insert_msi_desc(9)msi_domain_free_msi_descs_range(9)msi_domain_add_simple_msi_descs(9)msi_setup_device_data(9)__msi_lock_descs(9)__msi_unlock_descs(9)msi_domain_first_desc(9)msi_next_desc(9)msi_domain_get_virq(9)msi_device_populate_sysfs(9)msi_device_destroy_sysfs(9)msi_domain_set_affinity(9)msi_create_irq_domain(9)msi_create_parent_irq_domain(9)msi_parent_init_dev_msi_info(9)msi_create_device_irq_domain(9)msi_remove_device_irq_domain(9)msi_match_device_irq_domain(9)msi_domain_alloc_irqs_range_locked(9)msi_domain_alloc_irqs_range(9)msi_domain_alloc_irqs_all_locked(9)msi_domain_alloc_irq_at(9)msi_device_domain_alloc_wired(9)msi_domain_free_irqs_range(9)msi_domain_free_irqs_all_locked(9)msi_domain_free_irqs_all(9)msi_device_domain_free_wired(9)msi_get_domain_info(9)msi_device_has_isolated_msi(9)
lowkey the most important vibe check here: the_lockedin the name is not decorative, bestie β this one expectsmsi_lockto 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms