irq_domain_...ct_hierarchy(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ irq_domain_disconnect_hierarchy(9) πŸŽ€

okay bestie, welcome to the Kernel API Manual πŸ’… this one's a lil deep-cut from ./kernel/irq/irqdomain.c and honestly it's giving "surgical vibes only" β€” let's get into it ✨


✨ NAME ✨

irq_domain_disconnect_hierarchy β€” marks the first unused level of a hierarchy as, like, not it 🫢


✨ SYNOPSIS ✨

int irq_domain_disconnect_hierarchy (struct irq_domain *domain ,
unsigned int virq );

🌸 ARGUMENTS 🌸

  • domain β€” the IRQ domain whose hierarchy is getting disconnected, bestie. this is the one we're trimming βœ‚οΈ
  • virq β€” the IRQ number where the hierarchy is gonna be trimmed. yes, that virq πŸ’…

πŸ’– DESCRIPTION πŸ’–

so what it does is mark the virq level that belongs to domain as disconnected. like officially, on the record, no takebacks πŸ“

and here's the mood killer: it returns -EINVAL if virq doesn't have a valid irq_data pointing to domain. so if your pointers aren't pointing, it's gonna tell you 😭

the only use for this is being able to trim levels of a hierarchy that don't have any real meaning for this interrupt β€” the kinda levels the driver itself marks as such from its .alloc callback. so yeah, driver said "this level is fake, cut it", and this function is the scissors πŸ§šβ€β™€οΈ


πŸ‘‘ SEE ALSO πŸ‘‘

the whole friend group lives in the kernel file ./kernel/irq/irqdomain.c πŸ¦‹ so go say hi to:


ngl, this one's niche but iconic β€” trimming dead hierarchy levels is main character energy if i've ever seen it πŸ”₯ just don't go expecting it to fix a bad irq_data, it will simply return -EINVAL and leave you on read πŸ’€

okay that's the whole page, mwah πŸ’‹ this came out of ./kernel/irq and it's dated October 2026 β€” so, like, future-core of you to be reading it fr fr πŸŒˆβ­πŸ’œ

πŸ“¦ where this page comes from