disable_irq_nosync(9)
β¨ disable_irq_nosync β bestie's guide to yeeting an irq (without waiting) β¨
Okay so real talk: you're reading disable_irq_nosync(9), from the Kernel API Manual, and honestly? It's a little icon of a page. Let's get into it π«Ά
πΈ NAME πΈ
disable_irq_nosync β disable an irq without waiting, no cap π
π SYNOPSIS π
void disable_irq_nosync (unsigned int irq );
Like, that's it. That's the whole signature. Void return, one arg, she's lowkey minimal and I respect it π
π¦ ARGUMENTS π¦
irqβ the Interrupt to disable. Literally the one thing you're turning off, bestie π
β DESCRIPTION β
So what this does: it disables the selected interrupt line. Periodt. And btw, Disables and Enables are nested β so think of it like stacking bracelets, not a light switch, iykyk π
Here's the main character detail though β and this is the WHOLE point of the function: unlike disable_irq, this one does not ensure that existing instances of the IRQ handler have completed before it returns. Not even a little bit. She does not wait. She does not check. She says "bye" and leaves π₯
β οΈ Fr fr on that one β if you were relying on the handler being done when this returns, that is simply not happening here. That's the entire trade-off of the _nosync version. Don't get caught out π
And the slay-est part: this function may be called from IRQ context. Yes bestie, from inside interrupt context. She's built different ππ
π SEE ALSO π
Kernel file ./kernel/irq/manage.c, plus the whole friend group β here's everyone, no gatekeeping:
synchronize_hardirq(9), synchronize_irq(9), irq_can_set_affinity(9), irq_can_set_affinity_usr(9), irq_set_thread_affinity(9), irq_affinity_schedule_notify_work(9), irq_update_affinity_desc(9), irq_set_affinity(9), irq_force_affinity(9), irq_set_affinity_notifier(9), irq_set_vcpu_affinity(9), disable_irq(9), disable_hardirq(9), disable_nmi_nosync(9), enable_irq(9), enable_nmi(9), irq_set_irq_wake(9), irq_wake_thread(9), free_irq(9), request_threaded_irq(9), request_any_context_irq(9), request_nmi(9), irq_percpu_is_enabled(9), free_percpu_irq(9), request_percpu_irq_affinity(9), request_percpu_nmi(9), prepare_percpu_nmi(9), teardown_percpu_nmi(9), irq_get_irqchip_state(9), irq_set_irqchip_state(9), irq_has_action(9), irq_check_status_bit(9)
Like, go read synchronize_irq(9) if you actually do want the waiting behaviour β she's the responsible one of the group π§
<div align="center">π β¨ π π¦ πΈ π π«Ά π π₯ π π β π π π π§ π</div>
And that's the page! Sending you off from ./kernel/irq, dated October 2026, in this little corner of the Kernel API Manual known as disable_irq_nosync(9) β mwah, go disable something responsibly, bestie πβ¨
π¦ 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