[PATCH ath-current] wifi: ath12k: Fix failure to create ath12k_dp_peer on MLO reconnect
Baochen Qiang
baochen.qiang at oss.qualcomm.com
Wed Oct 14 22:55:50 PDT 2026
On 10/15/2026 12:09 PM, Miaoqing Pan wrote:
>
>
> On 9/29/2026 9:42 PM, Jeff Johnson wrote:
>> On 9/15/2026 1:00 AM, Miaoqing Pan wrote:
>>> In ath12k_mac_op_sta_state(), when transitioning an MLO station from
>>> IEEE80211_STA_NOTEXIST to IEEE80211_STA_NONE, after ath12k_dp_peer_create()
>>> succeeds, on is_sta_assoc_link verification failure, it takes the
>>> 'goto exit' path instead of 'goto peer_delete', leaving a stale dp_peer on
>>> the dp_peers_list.
>>>
>>> On the next connection attempt, ath12k_dp_peer_create() finds the stale
>>> entry and returns -EEXIST (-17):
>>>
>>> wlP4p1s0: failed to insert STA entry for the AP (error -17)
>>>
>>> Fix it by changing 'goto exit' to 'goto free_unassign_link'.
>>>
>>> Also, there is another error path in ath12k_mac_op_sta_state() that
>>> jumps to peer_delete after ath12k_mac_assign_link_sta() succeeds, without
>>> undoing the assignment through ath12k_mac_free_unassign_link_sta().
>>> As a result, the link RCU pointer remains assigned and a stale bit is
>>> left in ahsta->links_map, which can trigger the same -EEXIST failure
>>> on subsequent reconnect attempts. Fix this by redirecting that error
>>> path to free_unassign_link instead.
>>>
>>> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108-
>>> QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3
>>>
>>> Fixes: 0cd46d1f36ce ("wifi: ath12k: identify assoc link vif in station mode")
>>> Fixes: ee16dcf573d5 ("wifi: ath12k: Define ath12k_dp_peer structure & APIs for create &
>>> delete")
>>> Signed-off-by: Miaoqing Pan <miaoqing.pan at oss.qualcomm.com>
>>> ---
>>
>> Baochen has a more holistic approach to this problem in the works, so dropping
>> this patch.
>>
>> /jeff
>>
>
> I believe the patch that needs to be dropped is this one: https://lore.kernel.org/linux-
> wireless/20260815014329.3748059-1-miaoqing.pan at oss.qualcomm.com/.
>
> However, the patch itself is still required. @Baochen, could you please help confirm?
Yeah, exactly.
Jeff, I was wrong in the internal teams communication. Miaoqing is right on this topic.
More information about the ath12k
mailing list