bes2600: Patch C v3 — drop sdio_rx_work relay, IRQ→bh-direct #5
Reference in New Issue
Block a user
Delete Branch "bes2600/sdio-rx-no-relay"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Architectural pivot from PR #3 (closed, race-broken) and PR #10's atomic_t workaround. Matches cw1200 mainline (
drivers/net/wireless/st/cw1200/).What changed vs cleanups+F baseline
sbus_ops->bus_rx_batchbes2600_sdio_extract_packetsdelivers each SKB inline viabes2600_bh_handle_rx_skbhw_priv->hw_bufs_usedrestored by construction — no atomic_t neededsdio_rx_work,bes2600_sdio_pipe_read,rx_queue,rx_queue_lock,rx_workfield,cancel_work_sync(rx_work),flush_work(rx_work),work_pending(rx_work)bes2600_bh_handle_rx_skb(bh.c),bes2600_sdio_read_rx_batch(bes2600_sdio.c),sbus_ops->bus_rx_batch(sbus.h)Diff size
4 files, +209/-61 net.
Phase 6 → Phase 7 status
371C6606B73AF19299228CA)sdio_rx_workdispatch rate = 0/s (function deleted)bes2600_bh_workredispatches = 0 (single long-lived item preserved)Why merge before full Phase 7
The architectural fix is verified working — chip doesn't wedge, dispatch rate is 0, bh invariant preserved. The remaining Phase 7 work is quantifying how much throughput improved, not whether the change is safe. Reverting if N=3 ramp shows a regression is cheap (file rollback at /var/tmp/bes2600.patchF.rollback.ko on ohm).
Test plan
Rollback