Commit 75d2a4e
committed
wifi: mt76: mt7996: clear stale link state on full reset
After a full chip reset, mac80211 reconfig replays interface, link and
channel context setup. mt7996_vif_link_add() short-circuits when the
link_id is still marked in mvif->valid_links, a state introduced for
postponing link teardown to interface removal. The reset path frees the
link structures without clearing those bits, so the replayed setup never
re-creates dev_info/bss_info/STA records in the restarted firmware and
never re-registers the link wcid, leaving the device inoperative.
The reset path also leaks every allocated MLD index: per-link indices
and the per-vif group/remap indices are re-allocated from scratch during
reconfig, but the old bits stay set in the masks, so repeated full
resets exhaust the index space.
Clear valid_links in the reset vif iterator and reset the MLD index
masks alongside the existing omac_mask clearing.
Fixes: ace5d3b ("wifi: mt76: mt7996: improve hardware restart reliability")
Fixes: 0881370 ("wifi: mt76: mt7996: Destroy vif active links in mt7996_remove_interface()")
Link: https://patch.msgid.link/20260724124813.3961474-26-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>1 parent 7e4208e commit 75d2a4e
1 file changed
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2449 | 2449 | | |
2450 | 2450 | | |
2451 | 2451 | | |
| 2452 | + | |
2452 | 2453 | | |
2453 | 2454 | | |
2454 | 2455 | | |
| |||
2483 | 2484 | | |
2484 | 2485 | | |
2485 | 2486 | | |
| 2487 | + | |
| 2488 | + | |
2486 | 2489 | | |
2487 | 2490 | | |
2488 | 2491 | | |
| |||
0 commit comments