qcacld-3.0: Add mutex lock argument for the tdls function

The function wlan_hdd_tdls_indicate_teardown() calls
wlan_hdd_tdls_set_peer_link_status() with need_mutex
agrument as TRUE.

This change passes mutex argument to the function
wlan_hdd_tdls_indicate_teardown() that inturn passes
to wlan_hdd_tdls_set_peer_link_status() for need_mutex
argument.

Change-Id: I96400c00470dba7ae5ba9ad26142c7c5aaf2feb7
CRs-Fixed: 1115911
This commit is contained in:
Nitesh Shah
2017-01-31 11:08:56 +05:30
committed by qcabuildsw
parent 34574f81a6
commit b92e080828
3 changed files with 22 additions and 14 deletions

View File

@@ -611,7 +611,7 @@ void wlan_hdd_tdls_timer_restart(hdd_adapter_t *pAdapter,
uint32_t expirationTime); uint32_t expirationTime);
void wlan_hdd_tdls_indicate_teardown(hdd_adapter_t *pAdapter, void wlan_hdd_tdls_indicate_teardown(hdd_adapter_t *pAdapter,
hddTdlsPeer_t *curr_peer, hddTdlsPeer_t *curr_peer,
uint16_t reason); uint16_t reason, bool need_lock);
void wlan_hdd_tdls_implicit_send_discovery_request(tdlsCtx_t *hdd_tdls_ctx); void wlan_hdd_tdls_implicit_send_discovery_request(tdlsCtx_t *hdd_tdls_ctx);

View File

@@ -3866,7 +3866,7 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter,
wlan_hdd_tdls_find_peer(pAdapter, wlan_hdd_tdls_find_peer(pAdapter,
pRoamInfo->peerMac.bytes, true); pRoamInfo->peerMac.bytes, true);
wlan_hdd_tdls_indicate_teardown(pAdapter, curr_peer, wlan_hdd_tdls_indicate_teardown(pAdapter, curr_peer,
pRoamInfo->reasonCode); pRoamInfo->reasonCode, true);
hdd_send_wlan_tdls_teardown_event(eTDLS_TEARDOWN_BSS_DISCONNECT, hdd_send_wlan_tdls_teardown_event(eTDLS_TEARDOWN_BSS_DISCONNECT,
curr_peer->peerMac); curr_peer->peerMac);
status = QDF_STATUS_SUCCESS; status = QDF_STATUS_SUCCESS;
@@ -4040,7 +4040,7 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter,
wlan_hdd_tdls_indicate_teardown wlan_hdd_tdls_indicate_teardown
(pHddTdlsCtx->pAdapter, curr_peer, (pHddTdlsCtx->pAdapter, curr_peer,
reason); reason, true);
hdd_send_wlan_tdls_teardown_event( hdd_send_wlan_tdls_teardown_event(
eTDLS_TEARDOWN_BSS_DISCONNECT, eTDLS_TEARDOWN_BSS_DISCONNECT,
curr_peer->peerMac); curr_peer->peerMac);
@@ -4087,7 +4087,7 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter,
wlan_hdd_tdls_indicate_teardown wlan_hdd_tdls_indicate_teardown
(pHddTdlsCtx->pAdapter, curr_peer, (pHddTdlsCtx->pAdapter, curr_peer,
reason); reason, true);
hdd_send_wlan_tdls_teardown_event( hdd_send_wlan_tdls_teardown_event(
eTDLS_TEARDOWN_BSS_DISCONNECT, eTDLS_TEARDOWN_BSS_DISCONNECT,
curr_peer->peerMac); curr_peer->peerMac);

View File

@@ -271,7 +271,8 @@ void wlan_hdd_tdls_disable_offchan_and_teardown_links(hdd_context_t *hddctx)
wlan_hdd_tdls_indicate_teardown( wlan_hdd_tdls_indicate_teardown(
curr_peer->pHddTdlsCtx->pAdapter, curr_peer->pHddTdlsCtx->pAdapter,
curr_peer, curr_peer,
eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON,
true);
hdd_send_wlan_tdls_teardown_event(eTDLS_TEARDOWN_CONCURRENCY, hdd_send_wlan_tdls_teardown_event(eTDLS_TEARDOWN_CONCURRENCY,
curr_peer->peerMac); curr_peer->peerMac);
} }
@@ -2997,7 +2998,8 @@ int wlan_hdd_tdls_scan_callback(hdd_adapter_t *pAdapter, struct wiphy *wiphy,
wlan_hdd_tdls_indicate_teardown wlan_hdd_tdls_indicate_teardown
(connectedPeerList[i]->pHddTdlsCtx-> (connectedPeerList[i]->pHddTdlsCtx->
pAdapter, connectedPeerList[i], pAdapter, connectedPeerList[i],
eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON,
true);
hdd_send_wlan_tdls_teardown_event hdd_send_wlan_tdls_teardown_event
(eTDLS_TEARDOWN_SCAN, (eTDLS_TEARDOWN_SCAN,
connectedPeerList[i]->peerMac); connectedPeerList[i]->peerMac);
@@ -3101,11 +3103,13 @@ void wlan_hdd_tdls_timer_restart(hdd_adapter_t *pAdapter,
* @pAdapter: HDD adapter * @pAdapter: HDD adapter
* @curr_peer: peer tdls teardown happened * @curr_peer: peer tdls teardown happened
* @reason: teardown reason * @reason: teardown reason
* @need_lock: mutex lock for wlan_hdd_tdls_set_peer_link_status()
* *
* Return: Void * Return: Void
*/ */
void wlan_hdd_tdls_indicate_teardown(hdd_adapter_t *pAdapter, void wlan_hdd_tdls_indicate_teardown(hdd_adapter_t *pAdapter,
hddTdlsPeer_t *curr_peer, uint16_t reason) hddTdlsPeer_t *curr_peer, uint16_t reason,
bool need_lock)
{ {
if ((NULL == pAdapter || WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic) || if ((NULL == pAdapter || WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic) ||
(NULL == curr_peer)) { (NULL == curr_peer)) {
@@ -3121,7 +3125,7 @@ void wlan_hdd_tdls_indicate_teardown(hdd_adapter_t *pAdapter,
wlan_hdd_tdls_set_peer_link_status(curr_peer, wlan_hdd_tdls_set_peer_link_status(curr_peer,
eTDLS_LINK_TEARING, eTDLS_LINK_TEARING,
eTDLS_LINK_UNSPECIFIED, eTDLS_LINK_UNSPECIFIED,
true); need_lock);
hdd_info("Teardown reason %d", reason); hdd_info("Teardown reason %d", reason);
cfg80211_tdls_oper_request(pAdapter->dev, cfg80211_tdls_oper_request(pAdapter->dev,
curr_peer->peerMac, curr_peer->peerMac,
@@ -4628,7 +4632,8 @@ int wlan_hdd_tdls_extctrl_deconfig_peer(hdd_adapter_t *pAdapter,
} }
wlan_hdd_tdls_indicate_teardown(pAdapter, pTdlsPeer, wlan_hdd_tdls_indicate_teardown(pAdapter, pTdlsPeer,
eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON,
true);
hdd_send_wlan_tdls_teardown_event(eTDLS_TEARDOWN_EXT_CTRL, hdd_send_wlan_tdls_teardown_event(eTDLS_TEARDOWN_EXT_CTRL,
pTdlsPeer->peerMac); pTdlsPeer->peerMac);
if (0 != wlan_hdd_tdls_set_force_peer(pAdapter, peer, false)) { if (0 != wlan_hdd_tdls_set_force_peer(pAdapter, peer, false)) {
@@ -5732,8 +5737,9 @@ static void wlan_hdd_tdls_idle_handler(void *user_data)
hdd_info("trigger tdls link to "MAC_ADDRESS_STR hdd_info("trigger tdls link to "MAC_ADDRESS_STR
" down", MAC_ADDR_ARRAY(curr_peer->peerMac)); " down", MAC_ADDR_ARRAY(curr_peer->peerMac));
wlan_hdd_tdls_indicate_teardown(curr_peer->pHddTdlsCtx->pAdapter, wlan_hdd_tdls_indicate_teardown(curr_peer->pHddTdlsCtx->pAdapter,
curr_peer, curr_peer,
eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON,
true);
} }
error_idle_return: error_idle_return:
return; return;
@@ -5794,8 +5800,9 @@ static void tdls_ct_process_connected_link(hddTdlsPeer_t *curr_peer,
/* unlock the mutex here, it may used in caller function */ /* unlock the mutex here, it may used in caller function */
mutex_unlock(&hdd_ctx->tdls_lock); mutex_unlock(&hdd_ctx->tdls_lock);
wlan_hdd_tdls_indicate_teardown(hdd_tdls_ctx->pAdapter, wlan_hdd_tdls_indicate_teardown(hdd_tdls_ctx->pAdapter,
curr_peer, curr_peer,
eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON,
true);
mutex_lock(&hdd_ctx->tdls_lock); mutex_lock(&hdd_ctx->tdls_lock);
return; return;
} }
@@ -6106,7 +6113,8 @@ static int wlan_hdd_tdls_teardown_links(hdd_context_t *hddctx,
wlan_hdd_tdls_indicate_teardown( wlan_hdd_tdls_indicate_teardown(
curr_peer->pHddTdlsCtx->pAdapter, curr_peer->pHddTdlsCtx->pAdapter,
curr_peer, curr_peer,
eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON); eSIR_MAC_TDLS_TEARDOWN_UNSPEC_REASON,
true);
mutex_lock(&hddctx->tdls_lock); mutex_lock(&hddctx->tdls_lock);
hddctx->tdls_teardown_peers_cnt++; hddctx->tdls_teardown_peers_cnt++;
mutex_unlock(&hddctx->tdls_lock); mutex_unlock(&hddctx->tdls_lock);