Files
test0r 3d15c5367d fleet/ohm: pkgrel=6 — per-series converged with tx-sdio-dma-oob + join-confirm-reset
Two additions to fleet/ohm.yaml's includes for the bes2600 driver scope:

1. driver/bes2600/tx-sdio-dma-oob-danctnix/ — already on disk from
   ka#17 but not previously included. The cumulative-c5x-danctnix
   shipped in pkgrel=3 did NOT have this fix; pkgrel=4 per-series
   regressed because the staging-prep series was excluded. KFENCE
   caught the OOB during pkgrel=4 soak; pkgrel=5 included it.

2. driver/bes2600/join-confirm-reset-danctnix/ — NEW scope.
   cw1200 ancestor port (sta.c:1339-1344) with bes2600-specific
   PASSIVE-gate compensation in bes2600_unjoin_work. Closes
   besser#25. Verified pkgrel=6 srcversion 0E16463F: cascade gone,
   periodic ~600ms latency jitter also gone (same root cause).

Status note: per-series reconstruction is now converged. The
cumulative-c5x-danctnix entry is left as historical fallback;
ka#29's blocker (per-series mirrors not applying cleanly) was
resolved by manually reconstructing the per-series in
marfrit/bes2600-dkms bes2600/join-confirm-failure-reset (top
commit 3d833f8).

Build still hand-managed via boltzmann:~/src/besser/marfrit-besser/
danctnix-besser-pkgbuild/kernel/PKGBUILD; ka-promote / ka-build
template rendering still pending per the original TODOs.

Signed-off-by: Claude (noether) <claude@reauktion.de>
2026-05-21 12:23:47 +02:00

1.7 KiB

bes2600/join-confirm-reset-danctnix

Danctnix-flavor patch closing besser#25 (wsm_join_confirm failure cascade).

What it does

When firmware returns status 1 on a JOIN command (wsm_join_confirm ret 1), add a direct wsm_reset(...) call so the firmware returns to a clean IDLE state, plus queue_work(workqueue, &priv->unjoin_work) for serialisation of the next association attempt.

Why it's a fork-divergence fix

cw1200_join_work() (cw1200 ancestor, drivers/net/wireless/st/cw1200/sta.c:1339-1344) queues unjoin_work on join failure: cw1200_do_unjoin() calls wsm_reset when join_status == STA.

bes2600's bes2600_unjoin_work() gates the same wsm_reset on join_status != PASSIVE. After a failed JOIN, join_status stays PASSIVE (only set to STA on success) — queuing unjoin_work alone is insufficient on bes2600. The danctnix variant carries a direct wsm_reset in the failure path and the queue_work serialisation.

Observable effects (pkgrel=6 soak)

Beyond closing the cascade (besser#25 acceptance), this patch also collapsed the periodic ~600 ms latency jitter on ohm:

pkgrel=5 pkgrel=6
max RTT 612 ms 13.9 ms
mdev 103.5 ms 1.55 ms

The bgscan-driven roam-attempt to a 5 GHz BSSID followed by wsm_join reject was briefly stalling TX every minute even when the cascade did not fire.

Upstream