722434414a
After Patch C v3 / D / E / F / G all merged, the remaining cleanup target is the per-RX-frame tasklet defer that ieee80211_rx_irqsafe introduces. Patch C2 migrates all 6 call sites in bes2600 to ieee80211_rx_list, the process-context API verified per the kerneldoc audit (Task #19, mainline include/net/mac80211.h:5324-5345). Key constraints from kerneldoc: - cannot mix _list and _irqsafe for the same hardware (=> all 6 sites convert atomically) - requires local_bh_disable + rcu_read_lock wrap - calls must be synchronized for a single hardware (=> bh-thread-as-sole-RX-context post-v3 satisfies trivially) Plan §4.2 design decision: per-batch wrap (Option B), wrapping bes2600_sdio_read_rx_batch outer loop, rather than per-call wrap. Captures the actual batch benefit. Open questions for the Phase 5 reviewer: 1. rx_list draining semantics — does mainline expect explicit netif_receive_skb_list at end-of-batch, or does mac80211 internal-deliver? Need to verify by reading mt76 / iwl_pcie usage before Phase 6 lands. 2. beacon path (wsm.c:2415) SKB ownership — hw_priv->beacon is long-lived; after _rx_list consumes it, the field would be dangling. Audit before Phase 6. Predicted throughput delta: +5-15% over v3 N=3 baseline (2.352 MB/s), medium confidence. Smaller-than-expected delta = "marginal but no regression, ship for upstream-cleanliness". Phase 7 N=3 ramp uses wired enu1 path + per-rep fresh nc listener per the rig-failure-is-finding lesson.