disable_irq_nosync(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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