disable_nmi_nosync(9)
π disable_nmi_nosync(9) π
okay bestie, so we're in the Kernel API Manual today and this one is a tiny little function with a whole lot of attitude. it's giving "short but important." let's get into it β¨
πΈ NAME πΈ
disable_nmi_nosync β disable an nmi without waiting π«Ά
like, you turn off the interrupt and you do NOT stick around to see if anybody's still in there. no cap.
π SYNOPSIS π
void disable_nmi_nosync (unsigned int irq );
that's it. that's the whole signature. iconic behavior honestly π
π¦ ARGUMENTS π¦
irqβ Interrupt to disable. that's the one you're switching off, bestie. one (1) interrupt, selected by you π―
π DESCRIPTION π
Disable the selected interrupt line. and listen β disables and enables are nested, okay? so don't be out here thinking you can just disable once and then enable twice and call it a day. that's not how this works. the nesting is real and it is load-bearing π
The interrupt to disable must have been requested through request_nmi. like, that's the paperwork. if you didn't go through request_nmi, this isn't your interrupt to disable, friend π
and here's the main character detail: unlike disable_nmi, this function does not ensure existing instances of the IRQ handler have completed before returning. so it comes back right away, all casual, while the handler might still be out there doing its thing. if you need that guarantee, you want disable_nmi, not this one. lowkey a big deal π₯
fr fr, read that last paragraph twice. "nosync" is literally in the name β it does not wait for you. act accordingly π
π SEE ALSO π
Kernel file ./kernel/irq/manage.c β that's where the magic lives, go read it π§
and the whole extended friend group, in this exact order, mwah:
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_nosync(9)disable_irq(9)disable_hardirq(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)
and that's the page, bestie π this little drop came out of ./kernel/irq and it's dated October 2026 β go off, you beautiful interrupt-disabling icon ππ see u in the next one π
π¦ 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