[PATCH ath-current v2] wifi: ath11k: reset ar->num_station on hardware start
Baochen Qiang
baochen.qiang at oss.qualcomm.com
Thu Jul 30 22:41:17 PDT 2026
s/ar->num_station/ar->num_stations/ in subject
On 7/30/2026 10:03 PM, Nicolas Escande wrote:
> When (multiple) hw restart occurs, we end up in a situation where we
by hw restart do you mean firmware crash and then recovers ?
> cannot accept new stations / mesh peers. This seems to be the
> 'num_stations' in 'struct ath11k' that did not get reset properly in
> this case. In ath11k_mac_op_start(), it was indeed the only accounting var
> that did not get reset so let's clear it too.
the root cause description looks confused to me: if it is firmware crash and recover, we
should run the path ath11k_core_reset() -> ath11k_core_post_reconfigure_recovery() ->
ath11k_core_halt() -> ath11k_mac_peer_cleanup_all() and in that function ar->num_stations
is cleared.
>
> This avaoids problems like those:
s/avaoids/avoids/
>
> [1248828.088023] WARNING: CPU: 0 PID: 12281 at net/mac80211/util.c:1682 ieee80211_reconfig_stations+0x98/0xc0
> [1248828.088029] Modules linked in: ath11k_pci XXX [last unloaded: ath11k_pci]
> [1248828.088053] CPU: 0 UID: 0 PID: 12281 Comm: kworker/0:0 Tainted: G W XXX
> [1248828.088058] Tainted: [W]=WARN
> [1248828.088059] Hardware name: XXX (DT)
> [1248828.088060] Workqueue: events_freezable ieee80211_restart_work
> [1248828.088064] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [1248828.088068] pc : ieee80211_reconfig_stations+0x98/0xc0
> [1248828.088070] lr : ieee80211_reconfig_stations+0x94/0xc0
> [1248828.088073] sp : ffffff800025bc10
> [1248828.088074] x29: ffffff800025bc10 x28: 0000000000000001 x27: ffffff8027b19640
> [1248828.088078] x26: ffffff802a5619c8 x25: ffffff8027b199f0 x24: ffffff8027b19880
> [1248828.088082] x23: ffffff802a560e40 x22: ffffff8027b18880 x21: ffffff802a560800
> [1248828.088087] x20: 0000000000000001 x19: ffffff8027c71000 x18: ffffffffffffffff
> [1248828.088091] x17: 128c0801a9c37469 x16: 766e692d32464545 x15: ffffffffffffffff
> [1248828.088095] x14: 000000000000001f x13: 00000000000000b1 x12: 0000000000000001
> [1248828.088099] x11: ffffffc081061518 x10: ffffff800025baf0 x9 : ffffffc0808097f8
> [1248828.088103] x8 : 00000000ffffffd0 x7 : 0000000000000000 x6 : 000000000000003f
> [1248828.088107] x5 : 0000000000000000 x4 : 0000000000000000 x3 : ffffff8011ef2e80
> [1248828.088110] x2 : 0000000000000000 x1 : ffffff8011ef2e80 x0 : 00000000ffffff97
> [1248828.088115] Call trace:
> [1248828.088116] ieee80211_reconfig_stations+0x98/0xc0 (P)
> [1248828.088119] ieee80211_reconfig+0x774/0x1438
> [1248828.088123] ieee80211_restart_work+0x10c/0x178
> [1248828.088127] process_one_work+0x178/0x3c0
> [1248828.088130] worker_thread+0x280/0x440
> [1248828.088133] kthread+0xe0/0xf8
> [1248828.088137] ret_from_fork+0x10/0x20
> [1248828.088141] ---[ end trace 0000000000000000 ]---
> [1248828.090658] mesh1: HW problem - can not stop rx aggregation for 72:fc:8f:a8:f1:ed tid 0
> [1248828.090667] mesh1: HW problem - can not stop rx aggregation for 72:fc:8f:a8:f1:ed tid 3
> [1248828.090670] mesh1: HW problem - can not stop rx aggregation for 72:fc:8f:a8:f1:ed tid 4
> [1248828.090689] wlan2: HW problem - can not stop rx aggregation for 78:64:c0:26:8e:69 tid 0
> [1248828.090694] wlan2: HW problem - can not stop rx aggregation for 78:64:c0:26:8e:69 tid 1
> [1248828.090697] wlan2: HW problem - can not stop rx aggregation for 78:64:c0:26:8e:69 tid 5
> [1248828.090700] wlan2: HW problem - can not stop rx aggregation for 78:64:c0:26:8e:69 tid 6
> [1248828.090704] wlan2: HW problem - can not stop rx aggregation for be:3b:3d:84:3a:00 tid 0
> [1248828.090707] wlan2: HW problem - can not stop rx aggregation for be:3b:3d:84:3a:00 tid 1
> [1248828.090710] wlan2: HW problem - can not stop rx aggregation for be:3b:3d:84:3a:00 tid 6
> [1248836.686596] ath11k_warn: 39 callbacks suppressed
> [1248836.686604] ath11k_pci 0000:04:00.0: refusing to associate station: too many connected already (128)
> [1248836.686609] ath11k_pci 0000:04:00.0: Failed to add station: e8:51:9e:d6:93:22 for VDEV: 1
> [1248941.120126] ath11k_pci 0000:04:00.0: failed to flush sta transmit queue, data pkts pending 2
> [1248941.120186] ath11k_pci 0000:04:00.0: failed to clear all peer keys for vdev 2: -2
> [1248941.120190] ath11k_pci 0000:04:00.0: Failed to disassociate station: 92:14:23:65:57:fc
> [1248941.120196] ath11k_pci 0000:04:00.0: failed to lookup peer 92:14:23:65:57:fc on vdev 2
> [1248941.120200] ath11k_pci 0000:04:00.0: failed to find peer vdev_id 2 addr 92:14:23:65:57:fc in delete
> [1248941.120204] ath11k_pci 0000:04:00.0: Failed to delete peer: 92:14:23:65:57:fc for VDEV: 2
> [1248941.120207] ath11k_pci 0000:04:00.0: Failed to remove station: 92:14:23:65:57:fc for VDEV: 2
> [1248941.121319] ath11k_pci 0000:04:00.0: refusing to associate station: too many connected already (128)
> [1248941.121326] ath11k_pci 0000:04:00.0: Failed to add station: 92:14:23:65:57:fc for VDEV: 2
> [1248941.123036] ath11k_pci 0000:04:00.0: refusing to associate station: too many connected already (128)
>
> Tested-on: QCN9074 PCI WLAN.HK.2.9.0.1-01977-QCAHKSWPL_SILICONZ-1
>
> Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
> Signed-off-by: Nicolas Escande <nico.escande at gmail.com>
> ---
> v2:
> - rebased on ath/master
> - no code change
> ---
> drivers/net/wireless/ath/ath11k/mac.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
> index 2d55cdc4d165..0baa46df1fb9 100644
> --- a/drivers/net/wireless/ath/ath11k/mac.c
> +++ b/drivers/net/wireless/ath/ath11k/mac.c
> @@ -6699,6 +6699,7 @@ static int ath11k_mac_op_start(struct ieee80211_hw *hw)
> ar->num_started_vdevs = 0;
> ar->num_created_vdevs = 0;
> ar->num_peers = 0;
> + ar->num_stations = 0;
> ar->allocated_vdev_map = 0;
>
> /* Configure monitor status ring with default rx_filter to get rx status
More information about the ath11k
mailing list