diff options
| author | Nitesh Shah <niteshs@codeaurora.org> | 2017-01-16 16:37:20 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-01-17 04:54:28 -0800 |
| commit | 4967bf2cf80ef095039dd00b048745f549c45cd7 (patch) | |
| tree | d9a17c2644860766a539d5b1c3355b8fcc542c62 | |
| parent | c7f36e09a4e1f11f6f93a9fbfa6064b0edb30b27 (diff) | |
qcacld-3.0: Decrement TDLS state count while association in LFR
In LFR, wlan_hdd_tdls_notify_disconnect() will decrement TDLS
state count and increment it again. Thus, while associating
with new BSS, the TDLS connection does not happen.
Fix is not to increment TDLS state count again while association
occurs in LFR.
Change-Id: I219252265f1fecea09e9e3383209d2328102cde1
CRs-Fixed: 1111816
| -rw-r--r-- | core/hdd/inc/wlan_hdd_tdls.h | 6 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_assoc.c | 4 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_tdls.c | 5 |
3 files changed, 9 insertions, 6 deletions
diff --git a/core/hdd/inc/wlan_hdd_tdls.h b/core/hdd/inc/wlan_hdd_tdls.h index b2ec5d91f1a6..01ca3e54533e 100644 --- a/core/hdd/inc/wlan_hdd_tdls.h +++ b/core/hdd/inc/wlan_hdd_tdls.h @@ -735,6 +735,7 @@ void wlan_hdd_tdls_notify_connect(hdd_adapter_t *adapter, * wlan_hdd_tdls_notify_disconnect() - Update tdls state for every * disconnect event. * @adapter: hdd adapter + * @lfr_roam: roaming case * * After every disconnect event in the system, check whether TDLS * can be disabled/enabled in the system and update the @@ -742,7 +743,7 @@ void wlan_hdd_tdls_notify_connect(hdd_adapter_t *adapter, * * Return: None */ -void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter); +void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter, bool lfr_roam); void wlan_hdd_change_tdls_mode(void *hdd_ctx); void hdd_restart_tdls_source_timer(hdd_context_t *pHddCtx, eTDLSSupportMode tdls_mode); @@ -799,7 +800,8 @@ static inline void wlan_hdd_tdls_notify_connect(hdd_adapter_t *adapter, tCsrRoamInfo *csr_roam_info) { } -static inline void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter) +static inline void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter, + bool lfr_roam) { } diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 6aa271578730..5e96aac9d535 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -1200,7 +1200,7 @@ static void hdd_send_association_event(struct net_device *dev, /* change logging before release */ hdd_info("LFR3:hdd_send_association_event"); /* Update tdls module about the disconnection event */ - wlan_hdd_tdls_notify_disconnect(pAdapter); + wlan_hdd_tdls_notify_disconnect(pAdapter, true); } #endif if (eConnectionState_Associated == pHddStaCtx->conn_info.connState) { @@ -1325,7 +1325,7 @@ static void hdd_send_association_event(struct net_device *dev, } hdd_lpass_notify_disconnect(pAdapter); /* Update tdls module about the disconnection event */ - wlan_hdd_tdls_notify_disconnect(pAdapter); + wlan_hdd_tdls_notify_disconnect(pAdapter, false); #ifdef MSM_PLATFORM /* stop timer in sta/p2p_cli */ diff --git a/core/hdd/src/wlan_hdd_tdls.c b/core/hdd/src/wlan_hdd_tdls.c index ead4955364e8..f3e4d03e30cd 100644 --- a/core/hdd/src/wlan_hdd_tdls.c +++ b/core/hdd/src/wlan_hdd_tdls.c @@ -2007,6 +2007,7 @@ void wlan_hdd_tdls_notify_connect(hdd_adapter_t *adapter, * wlan_hdd_tdls_notify_disconnect() - Update tdls state for every * disconnect event. * @adapter: hdd adapter + * @lfr_roam: roaming case * * After every disconnect event in the system, check whether TDLS * can be disabled/enabled in the system and update the @@ -2014,7 +2015,7 @@ void wlan_hdd_tdls_notify_connect(hdd_adapter_t *adapter, * * Return: None */ -void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter) +void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter, bool lfr_roam) { hdd_adapter_t *temp_adapter; hdd_context_t *hdd_ctx = WLAN_HDD_GET_CTX(adapter); @@ -2032,7 +2033,7 @@ void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter) * check, whether TDLS could be enabled in the * system after this disassoc event. */ - if (!hdd_ctx->concurrency_marked) { + if (!lfr_roam && !hdd_ctx->concurrency_marked) { temp_adapter = wlan_hdd_tdls_get_adapter( hdd_ctx); if (NULL != temp_adapter) |
