浏览代码

qcacld-3.0: Fix TDLS connection tracker restart problem

In some scenarios TDLS connection tracker is not
enabled correctly, When the system comes out of
concurrency. Due to this TDLS connection problem
observed in some corner cases.
Enable TDLS connection tracker exclusively, when
TDLS reenabled in the system.

Change-Id: Ibabcb8887708bd3bde3d7a9819d5bcc4ebda47bf
CRs-Fixed: 2003045
Kabilan Kannan 8 年之前
父节点
当前提交
05da368631
共有 1 个文件被更改,包括 11 次插入1 次删除
  1. 11 1
      core/hdd/src/wlan_hdd_tdls.c

+ 11 - 1
core/hdd/src/wlan_hdd_tdls.c

@@ -748,6 +748,11 @@ int wlan_hdd_tdls_init(hdd_adapter_t *pAdapter)
 	 */
 	if (0 == WLAN_HDD_IS_TDLS_SUPPORTED_ADAPTER(pAdapter)) {
 		mutex_unlock(&pHddCtx->tdls_lock);
+		/* Check whether connection tracker can be enabled in
+		 * the system.
+		 */
+		if (pAdapter->device_mode == QDF_P2P_DEVICE_MODE)
+			cds_set_tdls_ct_mode(pHddCtx);
 		return 0;
 	}
 	/* Check for the valid pHddTdlsCtx. If valid do not further
@@ -2050,10 +2055,15 @@ void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter, bool lfr_roam)
 	if (!lfr_roam && !hdd_ctx->concurrency_marked) {
 		temp_adapter = wlan_hdd_tdls_get_adapter(
 					hdd_ctx);
-		if (NULL != temp_adapter)
+		if (NULL != temp_adapter) {
 			wlan_hdd_update_tdls_info(temp_adapter,
 						  false,
 						  false);
+			/* Enable connection tracker, if it is implicit and
+			 * external control mode.
+			 */
+			cds_set_tdls_ct_mode(hdd_ctx);
+		}
 	}
 }