diff options
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 38 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_main.c | 14 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_tdls.c | 125 |
3 files changed, 40 insertions, 137 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 126e8297565c..e4a84526af05 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -3043,12 +3043,7 @@ int wlan_hdd_cfg80211_change_iface( struct wiphy *wiphy, * protect the concurrent access for the Adapters by TDLS * module. */ - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return -EINVAL; - } + mutex_lock(&pHddCtx->tdls_lock); #endif //De-init the adapter. hdd_stop_adapter( pHddCtx, pAdapter ); @@ -3181,12 +3176,7 @@ int wlan_hdd_cfg80211_change_iface( struct wiphy *wiphy, * protect the concurrent access for the Adapters by TDLS * module. */ - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return -EINVAL; - } + mutex_lock(&pHddCtx->tdls_lock); #endif status = wlan_hdd_change_iface_to_sta_mode(ndev, type); #ifdef FEATURE_WLAN_TDLS @@ -3288,6 +3278,7 @@ static int wlan_hdd_tdls_add_station(struct wiphy *wiphy, hdd_context_t *pHddCtx = wiphy_priv(wiphy); VOS_STATUS status; hddTdlsPeer_t *pTdlsPeer; + tANI_U16 numCurrTdlsPeers; ENTER(); @@ -3362,12 +3353,15 @@ static int wlan_hdd_tdls_add_station(struct wiphy *wiphy, /* first to check if we reached to maximum supported TDLS peer. TODO: for now, return -EPERM looks working fine, but need to check if any other errno fit into this category.*/ - if (HDD_MAX_NUM_TDLS_STA <= wlan_hdd_tdlsConnectedPeers(pAdapter)) + numCurrTdlsPeers = wlan_hdd_tdlsConnectedPeers(pAdapter); + if (HDD_MAX_NUM_TDLS_STA <= numCurrTdlsPeers) { VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "%s: " MAC_ADDRESS_STR - " TDLS Max peer already connected. Request declined.", - __func__, MAC_ADDR_ARRAY(mac)); + " TDLS Max peer already connected. Request declined." + " Num of peers (%d), Max allowed (%d).", + __func__, MAC_ADDR_ARRAY(mac), numCurrTdlsPeers, + HDD_MAX_NUM_TDLS_STA); goto error; } else @@ -8711,6 +8705,7 @@ static int wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *d int max_sta_failed = 0; int responder; long rc; + tANI_U16 numCurrTdlsPeers; if (NULL == pHddCtx || NULL == pHddCtx->cfg_ini) { @@ -8766,7 +8761,8 @@ static int wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *d if (SIR_MAC_TDLS_SETUP_REQ == action_code || SIR_MAC_TDLS_SETUP_RSP == action_code ) { - if (HDD_MAX_NUM_TDLS_STA <= wlan_hdd_tdlsConnectedPeers(pAdapter)) + numCurrTdlsPeers = wlan_hdd_tdlsConnectedPeers(pAdapter); + if (HDD_MAX_NUM_TDLS_STA <= numCurrTdlsPeers) { /* supplicant still sends tdls_mgmt(SETUP_REQ) even after we return error code at 'add_station()'. Hence we have this @@ -8776,8 +8772,9 @@ static int wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *d { VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "%s: " MAC_ADDRESS_STR - " TDLS Max peer already connected. action %d declined.", - __func__, MAC_ADDR_ARRAY(peer), action_code); + " TDLS Max peer already connected. action (%d) declined. Num of peers (%d), Max allowed (%d).", + __func__, MAC_ADDR_ARRAY(peer), action_code, + numCurrTdlsPeers, HDD_MAX_NUM_TDLS_STA); goto error; } else @@ -8787,8 +8784,9 @@ static int wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *d status_code = eSIR_MAC_UNSPEC_FAILURE_STATUS; VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, "%s: " MAC_ADDRESS_STR - " TDLS Max peer already connected send response status %d", - __func__, MAC_ADDR_ARRAY(peer), status_code); + " TDLS Max peer already connected, send response status (%d). Num of peers (%d), Max allowed (%d).", + __func__, MAC_ADDR_ARRAY(peer), status_code, + numCurrTdlsPeers, HDD_MAX_NUM_TDLS_STA); max_sta_failed = -EPERM; /* fall through to send setup resp with failure status code */ diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index df9f59662cb7..95481a63edd6 100644 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -7073,12 +7073,7 @@ hdd_adapter_t* hdd_open_adapter( hdd_context_t *pHddCtx, tANI_U8 session_type, /* A Mutex Lock is introduced while changing/initializing the mode to * protect the concurrent access for the Adapters by TDLS module. */ - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return NULL; - } + mutex_lock(&pHddCtx->tdls_lock); #endif pAdapter->wdev.iftype = (session_type == WLAN_HDD_P2P_CLIENT) ? @@ -7299,12 +7294,7 @@ VOS_STATUS hdd_close_adapter( hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter, /* A Mutex Lock is introduced while changing/initializing the mode to * protect the concurrent access for the Adapters by TDLS module. */ - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return VOS_STATUS_E_FAILURE; - } + mutex_lock(&pHddCtx->tdls_lock); #endif hdd_remove_adapter( pHddCtx, pAdapterNode ); diff --git a/CORE/HDD/src/wlan_hdd_tdls.c b/CORE/HDD/src/wlan_hdd_tdls.c index 3b7b4082a106..05bc1e03a493 100644 --- a/CORE/HDD/src/wlan_hdd_tdls.c +++ b/CORE/HDD/src/wlan_hdd_tdls.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2013 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -104,12 +104,7 @@ static v_VOID_t wlan_hdd_tdls_start_peer_discover_timer(tdlsCtx_t *pHddTdlsCtx, if ( mutexLock ) { - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list: %d", __func__, __LINE__); - return; - } + mutex_lock(&pHddCtx->tdls_lock); } pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pHddTdlsCtx->pAdapter); @@ -153,12 +148,7 @@ static v_VOID_t wlan_hdd_tdls_discover_peer_cb( v_PVOID_t userData ) return; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list : %d", __func__, __LINE__); - return; - } + mutex_lock(&pHddCtx->tdls_lock); pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pHddTdlsCtx->pAdapter); @@ -274,12 +264,7 @@ static v_VOID_t wlan_hdd_tdls_update_peer_cb( v_PVOID_t userData ) if (NULL == pHddCtx) return; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return; - } + mutex_lock(&pHddCtx->tdls_lock); for (i = 0; i < 256; i++) { head = &pHddTdlsCtx->peer_list[i]; @@ -441,12 +426,7 @@ static v_VOID_t wlan_hdd_tdls_idle_cb( v_PVOID_t userData ) curr_peer->rx_pkt, curr_peer->pHddTdlsCtx->threshold_config.idle_packet_n); - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return; - } + mutex_lock(&pHddCtx->tdls_lock); /* Check tx/rx statistics on this tdls link for recent activities and * then decide whether to tear down the link or keep it. @@ -492,12 +472,7 @@ static v_VOID_t wlan_hdd_tdls_discovery_timeout_peer_cb(v_PVOID_t userData) if (NULL == pHddCtx) return; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return ; - } + mutex_lock(&pHddCtx->tdls_lock); for (i = 0; i < 256; i++) { head = &pHddTdlsCtx->peer_list[i]; @@ -985,13 +960,8 @@ hddTdlsPeer_t *wlan_hdd_tdls_get_peer(hdd_adapter_t *pAdapter, u8 *mac) return NULL; } - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - vos_mem_free(peer); - return NULL; - } + mutex_lock(&pHddCtx->tdls_lock); + pHddTdlsCtx = WLAN_HDD_GET_TDLS_CTX_PTR(pAdapter); if (NULL == pHddTdlsCtx) @@ -1090,12 +1060,7 @@ int wlan_hdd_tdls_recv_discovery_resp(hdd_adapter_t *pAdapter, u8 *mac) if (pHddTdlsCtx->discovery_sent_cnt) pHddTdlsCtx->discovery_sent_cnt--; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return -1; - } + mutex_lock(&pHddCtx->tdls_lock); wlan_hdd_tdls_check_power_save_prohibited(pAdapter); @@ -1459,12 +1424,7 @@ hddTdlsPeer_t *wlan_hdd_tdls_find_peer(hdd_adapter_t *pAdapter, u8 *mac, if ( mutexLock ) { - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return NULL; - } + mutex_lock(&pHddCtx->tdls_lock); } pHddTdlsCtx = WLAN_HDD_GET_TDLS_CTX_PTR(pAdapter); if (NULL == pHddTdlsCtx) @@ -1501,12 +1461,7 @@ hddTdlsPeer_t *wlan_hdd_tdls_find_all_peer(hdd_context_t *pHddCtx, u8 *mac) hddTdlsPeer_t *curr_peer= NULL; VOS_STATUS status = 0; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return NULL; - } + mutex_lock(&pHddCtx->tdls_lock); status = hdd_get_front_adapter ( pHddCtx, &pAdapterNode ); while ( NULL != pAdapterNode && VOS_STATUS_SUCCESS == status ) { @@ -1654,12 +1609,7 @@ int wlan_hdd_tdls_get_all_peers(hdd_adapter_t *pAdapter, char *buf, int buflen) buf += len; buflen -= len; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return init_len-buflen; - } + mutex_lock(&pHddCtx->tdls_lock); pHddTdlsCtx = WLAN_HDD_GET_TDLS_CTX_PTR(pAdapter); if (NULL == pHddTdlsCtx) { mutex_unlock(&pHddCtx->tdls_lock); @@ -1696,12 +1646,7 @@ void wlan_hdd_tdls_connection_callback(hdd_adapter_t *pAdapter) if ((NULL == pHddCtx) || (NULL == pHddTdlsCtx)) return; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return; - } + mutex_lock(&pHddCtx->tdls_lock); VOS_TRACE( VOS_MODULE_ID_HDD, TDLS_LOG_LEVEL, "%s, update %d discover %d", __func__, @@ -1738,12 +1683,8 @@ void wlan_hdd_tdls_disconnection_callback(hdd_adapter_t *pAdapter) VOS_TRACE( VOS_MODULE_ID_HDD, TDLS_LOG_LEVEL,"%s", __func__); - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return; - } + mutex_lock(&pHddCtx->tdls_lock); + if (NULL == pHddTdlsCtx) { mutex_unlock(&pHddCtx->tdls_lock); @@ -1773,12 +1714,7 @@ void wlan_hdd_tdls_increment_peer_count(hdd_adapter_t *pAdapter) if (NULL == pHddCtx) return; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return; - } + mutex_lock(&pHddCtx->tdls_lock); pHddCtx->connected_peer_count++; wlan_hdd_tdls_check_power_save_prohibited(pAdapter); @@ -1795,12 +1731,7 @@ void wlan_hdd_tdls_decrement_peer_count(hdd_adapter_t *pAdapter) if (NULL == pHddCtx) return; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return; - } + mutex_lock(&pHddCtx->tdls_lock); if (pHddCtx->connected_peer_count) pHddCtx->connected_peer_count--; @@ -1942,12 +1873,7 @@ hddTdlsPeer_t *wlan_hdd_tdls_is_progress(hdd_context_t *pHddCtx, u8 *mac, u8 ski hddTdlsPeer_t *curr_peer= NULL; VOS_STATUS status = 0; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return NULL; - } + mutex_lock(&pHddCtx->tdls_lock); status = hdd_get_front_adapter ( pHddCtx, &pAdapterNode ); while ( NULL != pAdapterNode && VOS_STATUS_SUCCESS == status ) @@ -2009,13 +1935,7 @@ void wlan_hdd_tdls_set_mode(hdd_context_t *pHddCtx, if (NULL == pHddCtx) return; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return; - } - + mutex_lock(&pHddCtx->tdls_lock); if (pHddCtx->tdls_mode == tdls_mode) { @@ -2138,12 +2058,7 @@ static void wlan_hdd_tdls_pre_setup(struct work_struct *work) pHddTdlsCtx->discovery_sent_cnt++; - if (mutex_lock_interruptible(&pHddCtx->tdls_lock)) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: unable to lock list", __func__); - return; - } + mutex_lock(&pHddCtx->tdls_lock); wlan_hdd_tdls_check_power_save_prohibited(pHddTdlsCtx->pAdapter); |
