Re: [PATCH ath-current 1/2] wifi: ath9k_htc: do not start ANI before the first channel is set
From: Toke Høiland-Jørgensen
Date: Mon Oct 19 2026 - 16:44:15 EST
Mehmet Fide <mehmet.fide@xxxxxxxxx> writes:
> From: Mehmet Fide <mehmet.fide@xxxxxxxxxxxxxxxxxx>
>
> ath9k_htc_add_interface() starts ANI for the first AP interface, before
> any channel is configured. The per-channel calibration data only gets
> attached by the first ath9k_htc_set_channel() that is not a fast
> channel change, and that same call cancels the ANI work a few
> milliseconds after add_interface, so normally the work never runs.
>
> When the bring-up stalls for more than the 100 ms ANI poll interval in
> between, it does run, and ar9002_hw_per_calibration() records the IQ
> calibration result in the calibration data that does not exist yet:
>
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000008
> PC is at ar9002_hw_calibrate+0x1f8/0x570 [ath9k_hw]
> Workqueue: phy0 ath9k_htc_ani_work [ath9k_htc]
>
> Seen about once per thousand AP starts with an AR9271 on a Cortex-A5
> board that starts hostapd while still booting; a 500 ms delay after
> add_interface reproduces it on every start. The crashed work never
> completes, so the next cancel_delayed_work_sync() blocks for good.
>
> Drop the start; it has nothing to calibrate against and is cancelled
> anyway. The TSF adjust bit that shared its condition is now set for
> every AP interface, which is harmless: the next reset applies it. The
> next patch starts ANI once the interface beacons.
>
> Fixes: a236254c35f0 ("ath9k_htc: Add ANI for AP mode")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Mehmet Fide <mehmet.fide@xxxxxxxxxxxxxxxxxx>
Acked-by: Toke Høiland-Jørgensen <toke@xxxxxxx>