suspend_device_irqs(9)
β¨ suspend_device_irqs(9) β¨
okay so welcome to the Kernel API Manual bestie, today's main character is suspend_device_irqs and honestly? she's kind of a big deal π
πΈ NAME πΈ
suspend_device_irqs β literally just disabling all the currently enabled interrupt lines. that's it. that's the whole vibe check π
π¦ SYNOPSIS π¦
void suspend_device_irqs (void );
like, she takes nothing and gives everything, no cap β¨
π ARGUMENTS π
voidβ no arguments. zero. zilch. she needs no input, she's self-sufficient like that π«Ά
π DESCRIPTION π
so here's the tea β β during system-wide suspend or hibernation, device drivers need to be prevented from receiving interrupts, and this function exists purely to do exactly that. it's giving bodyguard energy honestly π‘οΈ
so we disable all the interrupts and mark them IRQS_SUSPENDEDβ¦ except for the special ones, because of course there are exceptions, there are always exceptions π:
- the ones that are unused (nobody's home, we leave them be)
- the ones marked as not suspendable via an interrupt request with the flag
IRQF_NO_SUSPENDset (they said "not today" and we respect it π ) - the ones marked as active wakeup sources (these are the main characters, we'll get to them)
the active wakeup sources are handled by the flow handler entry code, which checks for the IRQD_WAKEUP_ARMED flag, suspends the interrupt, and notifies the pm core about the wakeup. slay, honestly π₯
π SEE ALSO π
- Kernel file
./kernel/irq/pm.cβ the source, iconic π rearm_wake_irq(9)irq_pm_syscore_resume(9)resume_device_irqs(9)β the sequel, the comeback arc π
and that's the whole page bestie, iykyk β this one lives in ./kernel/irq, dated October 2026, and it's called suspend_device_irqs(9) β go forth and suspend those irqs responsibly, mwah ππ§
π¦ 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