__napi_schedule_irqoff(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– __napi_schedule_irqoff β€” kernel API manual, bestie edition πŸ’–

Okay so we're deep in the kernel API manual today, specifically the page for __napi_schedule_irqoff, and honestly? She's a little niche icon but she serves. Let's get into it 🫢


✨ NAME ✨

__napi_schedule_irqoff β€” schedule for receive

Like, the whole personality is right there in the name: you're scheduling something for receive. That's it, that's the vibe. πŸ’…


🌸 SYNOPSIS 🌸

void __napi_schedule_irqoff (struct napi_struct *n );

Yeah. One function, one pointer, no return value β€” void all the way, she gives nothing back and expects nothing in return. Main character energy honestly. ✨


πŸŽ€ ARGUMENTS πŸŽ€

  • n β€” the entry to schedule. That's your struct napi_struct *, bestie. Hand her over and she goes on the list. πŸ¦‹

πŸ’œ DESCRIPTION πŸ’œ

So __napi_schedule_irqoff is a variant of __napi_schedule, and the whole thing about this variant is that it assumes hard irqs are masked. Lowkey important. If that assumption doesn't hold for you, you're in the wrong function, no cap. πŸ™ˆ

⚠️ Now here's the plot twist, and it's giving PREEMPT_RT: on PREEMPT_RT enabled kernels, this maps to __napi_schedule instead. Why? Because the "interrupts are disabled" assumption might not actually be true there β€” force-threaded interrupts and spinlock substitution can mess with it. So the assumption gets a vibe check and the kernel routes around it. 😭✨

🧚 SEE ALSO 🧚

Alright, buckle up buttercup, because the SEE ALSO section on this one is long. It's giving "linked list of every netdev function in the file" and we're gonna list every single one, because we don't skip details around here. πŸ‘‘

Kernel file ./net/core/dev.c, and then, in order:

Yeah, that's all of them, and yeah, I typed every single one. Obsessed with her cross-reference game honestly. πŸ“šπŸ’…


Lil sign-off before you go: this page lives in ./net/core and it's dated October 2026, and the header/footer both say __napi_schedule_irqoff(9) because she's consistent like that. Now go schedule something for receive, bestie, and remember the irq masking assumption πŸ’–πŸŒˆβ­

πŸ“¦ where this page comes from