Răsfoiți Sursa

qcacld-3.0: Protect the ROC ctx with mutex during mgmt TX

qcacld-2.0 to qcacld-3.0 propagation

Protect access of remain_on_chan_ctx in __wlan_hdd_mgmt_tx
under remain_on_chan_ctx_lock mutex.

CRs-Fixed: 1054846
Change-Id: Ia96d1ea901bcbe95b5ecf608d63ba6a544a1465c
Deepthi Gowri 8 ani în urmă
părinte
comite
0a151cbb2e
1 a modificat fișierele cu 3 adăugiri și 0 ștergeri
  1. 3 0
      core/hdd/src/wlan_hdd_p2p.c

+ 3 - 0
core/hdd/src/wlan_hdd_p2p.c

@@ -1449,14 +1449,17 @@ static int __wlan_hdd_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
 		} else
 			mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
 
+		mutex_lock(&cfgState->remain_on_chan_ctx_lock);
 		if ((cfgState->remain_on_chan_ctx != NULL) &&
 		    (cfgState->current_freq == chan->center_freq)
 		    ) {
+			mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
 			hdd_notice("action frame: extending the wait time");
 			extendedWait = (uint16_t) wait;
 			goto send_frame;
 		}
 
+		mutex_unlock(&cfgState->remain_on_chan_ctx_lock);
 		INIT_COMPLETION(pAdapter->offchannel_tx_event);
 
 		status = wlan_hdd_request_remain_on_channel(wiphy, dev, chan,