1
0

qcacld-3.0: Race issue when link switch happens

For N-link, TDLS sends discovery request on different links
and starts timer to receive discovery response. There is one
race issue: if link switch happens before the timer stopped,
the timer count is reset because disconnection happens.

To resolve this issue, return if timer count is reset in
timer callback.

Change-Id: I7603de507f59dd988d70daad52fd4f4a2aa48d51
CRs-Fixed: 3586393
Este cometimento está contido em:
Paul Zhang
2023-08-11 17:00:39 +08:00
cometido por Rahul Choudhary
ascendente db46fed034
cometimento ee98b703d8

Ver ficheiro

@@ -108,6 +108,11 @@ void tdls_discovery_timeout_peer_cb(void *user_data)
if (!tdls_soc)
return;
/* timer_cnt is reset when link switch happens */
if (wlan_vdev_mlme_is_mlo_vdev(vdev) &&
qdf_atomic_read(&tdls_soc->timer_cnt) == 0)
return;
if (wlan_vdev_mlme_is_mlo_vdev(vdev) &&
qdf_atomic_dec_and_test(&tdls_soc->timer_cnt)) {
tdls_process_mlo_cal_tdls_link_score(vdev);