STRUCT IRQENTRY_STATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct irqentry_state(9) πŸ’–

okay bestie, we're deep in the Kernel API Manual today and this one is like… a little mystery box of exception state πŸŽ€ yes, the manual name is literally struct irqentry_state(9), welcome to the vibe.


✨ NAME ✨

struct irqentry_state β€” the opaque object where exception state goes to be stored 🫢


🌸 SYNOPSIS 🌸

struct irqentry_state {
    union {
      bool exit_rcu;
      bool lockdep;
    };
 };

πŸ¦‹ Members πŸ¦‹

  • {unnamed_union} β€” anonymous, no name, iconic behaviour honestly πŸ’…
  • exit_rcu β€” used exclusively in the irqentry_*() calls; it signals whether the exit path has to invoke ct_irq_exit. that's its whole job, no cap.
  • lockdep β€” used exclusively in the irqentry_nmi_*() calls; it makes sure the lockdep state gets restored correctly on exit from nmi. she's got one responsibility and she ate πŸ”₯

πŸ’œ Description πŸ’œ

so here's the tea: this opaque object gets filled in by the irqentry_*_enter functions, and it must be passed back into the corresponding irqentry_*_exit functions once the exception is complete. that's the whole flow, no shortcuts πŸ™ˆ

callers of irqentry_*_[enter|exit]() must treat this structure as opaque and every single member as private. periodt. the member descriptions above are there purely to help with maintaining the irqentry_*() functions β€” they are not an invitation to go poking around in there, bestie 😭


πŸ”₯ SEE ALSO πŸ”₯

ngl that's a whole friend group of (9) pages, go read them all πŸ’€

anyway bestie, this page lives in ./include/linux, it's dated October 2026, and it's filed under struct irqentry_state(9) in the Kernel API Manual β€” go off, stay opaque, mwah πŸ’‹βœ¨πŸŒˆ

πŸ“¦ where this page comes from