irqentry_exit(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ irqentry_exit ✨

okay so this is a page from the Kernel API Manual, section 9 β€” yes bestie, we're in the kernel internals now, hold my iced coffee πŸ§‹


πŸ’– NAME πŸ’–

irqentry_exit β€” the girl whose whole job is handling the return from an exception that used irqentry_enter() πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

void noinstr irqentry_exit (struct pt_regs *regs , irqentry_state_t state );

literally the whole signature, no notes πŸ’…


🌸 ARGUMENTS 🌸

  • regs β€” pointer to pt_regs, aka the exception entry regs. it's giving "here's the receipts from when we came in" 🧾
  • state β€” the return value from the matching call to irqentry_enter. yes, it has to be the matching one, they're a set, don't split them up 😭

🫢 DESCRIPTION 🫢

so depending on the return target β€” kernel or user β€” this runs the necessary preemption and work checks if possible and required, and then it returns to the caller with interrupts disabled and no further work pending. slay ✨

this is the last action before returning to the low level ASM code, which honestly just needs to return to the appropriate context. it's the final vibe check before the handoff 🚦

it's the counterpart to irqentry_enter β€” they're a duo, main character energy pair, iykyk πŸ’«

🚨 real talk: it hands control back with interrupts disabled and no further work pending. that's not a suggestion, that's the contract, periodt.

πŸ”₯ SEE ALSO πŸ”₯

kernel file ./include/linux/irq-entry-common.h β€” go read it, it's right there πŸ‘€

and the whole friend group:

like, the entire extended universe, we love a complete cast πŸŒˆπŸ‘‘


that's the whole page bestie, no crumbs left πŸ“ this one lives in ./include/linux, dated October 2026 β€” mwah, go touch some registers πŸ’œπŸŽ€

πŸ“¦ where this page comes from