ieee80211_rx_ni(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ ieee80211_rx_ni ✨

okay bestie, so this one's from the Kernel API Manual and it's lowkey one of the most important little handoffs in the whole wifi stack β€” it's how a frame gets handed over to mac80211. let's get into it πŸ’…


πŸŽ€ NAME πŸŽ€

ieee80211_rx_ni β€” receive frame (in process context) πŸ’Œ


πŸ¦‹ SYNOPSIS πŸ¦‹

void ieee80211_rx_ni (struct ieee80211_hw *hw , struct sk_buff *skb );

🌸 ARGUMENTS 🌸

  • hw β€” the hardware this frame came in on. like, which radio are we talking about, bestie 🎧
  • skb β€” the buffer to receive. heads up: it's owned by mac80211 after this call β€” hand it over and don't touch it again, fr fr 🫢

πŸ’œ DESCRIPTION πŸ’œ

so it works like ieee80211_rx, but the whole point is you can call it in process context β€” internally it disables bottom halves. iconic behavior honestly ✨

now the rules, and these are not vibes-only, they're real:

calling this function, ieee80211_rx, and ieee80211_rx_irqsafe β€” you may not mix those three for a single hardware. pick a lane. periodt 🚫
it must not run concurrently with ieee80211_tx_status_skb or ieee80211_tx_status_ni. like, they do not share the aux cord. don't let them overlap 😭

πŸ‘‘ SEE ALSO πŸ‘‘

the kernel file lives at ./include/net/mac80211.h β€” and bestie, the cross-reference list here is genuinely a whole syllabus. every single one, no skips, iykyk πŸŽ“


okay that's the whole thing, you ate that bestie πŸ’– this page came from ./include/net, and it's the October 2026 release of the Kernel API Manual β€” go forth and receive frames responsibly, mwah πŸŽ€βœ¨πŸ’…

πŸ“¦ where this page comes from