ice_alloc_irq(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ ice_alloc_irq β€” the "gimme a fresh interrupt vector" era ✨

okay so this page lives in the Kernel API Manual (section 9, kernel API things, iykyk) and honestly bestie it's a short one but it's got range πŸ’…


πŸ¦‹ NAME πŸ¦‹

ice_alloc_irq β€” literally just: allocate a new interrupt vector. that's the whole vibe. it's giving "new vector, who dis" πŸŽ€


🌸 SYNOPSIS 🌸

struct msi_map ice_alloc_irq (struct ice_pf *pf , bool dyn_allowed );

πŸ’– ARGUMENTS πŸ’–

  • pf β€” the board private structure. yes, the classic. it's the struct ice_pf * carrying all the board-specific lore πŸ‘‘
  • dyn_allowed β€” whether dynamic allocation of the interrupt is allowed. like, are we allowed to just freestyle a new one? this flag says yes or no πŸ™ˆ

⭐ DESCRIPTION ⭐

okay so the whole point: this allocates a new interrupt vector for a given owner id. it returns a struct msi_map with all the interrupt deets inside, and it tracks the allocated interrupt appropriately. main character energy, honestly β€” it allocates and it keeps receipts 🧚

here's the actual tea β˜•: this function reserves a new irq entry from the irq_tracker. and if β€” according to the tracker info β€” all the interrupts that were allocated with ice_pci_alloc_irq_vectors are already used, and dynamically allocated interrupts are supported, then the new interrupt gets allocated with pci_msix_alloc_irq_at. slay, adaptive behavior πŸ”₯

some callers may only support dynamically allocated interrupts. that's what the dyn_allowed flag is telling you β€” it's the indicator, periodt πŸ’…

πŸ’€ on failure, it returns a map with a negative .index. the caller is expected to check the returned map index. do not skip the check, bestie, that's how you get mystery bugs at 3am 😭

🌈 SEE ALSO 🌈

like, the whole irq friend group 🫢 go read them, they're all linked up fr fr


anyway that's the page!! this one came out of ./drivers/net/ethernet/intel/ice and it's dated October 2026 β€” so yeah, future-coded ⭐ stay hydrated, check your .index for negatives, and go allocate something iconic πŸ’œβœ¨

πŸ“¦ where this page comes from