浏览代码

qcacld-3.0: Move invalidation of sessionId when the adapter is allocated

NDI interface creation is supported from the hdd_open_adapter, because of
invalidation of sessionId is done in the same function the session created
for NDI is getting overwritten.

To migitate the issue invalidate the sessionId once the adapter is created.

Change-Id: I0a4a116daae02b822b3e75c06e2b966be9f2e24b
CRs-Fixed: 1064031
Arun Khandavalli 8 年之前
父节点
当前提交
9ad88f04ac
共有 2 个文件被更改,包括 3 次插入2 次删除
  1. 1 0
      core/hdd/src/wlan_hdd_hostapd.c
  2. 2 2
      core/hdd/src/wlan_hdd_main.c

+ 1 - 0
core/hdd/src/wlan_hdd_hostapd.c

@@ -6455,6 +6455,7 @@ hdd_adapter_t *hdd_wlan_create_ap_dev(hdd_context_t *pHddCtx,
 		pHostapdAdapter->dev = pWlanHostapdDev;
 		pHostapdAdapter->dev = pWlanHostapdDev;
 		pHostapdAdapter->pHddCtx = pHddCtx;
 		pHostapdAdapter->pHddCtx = pHddCtx;
 		pHostapdAdapter->magic = WLAN_HDD_ADAPTER_MAGIC;
 		pHostapdAdapter->magic = WLAN_HDD_ADAPTER_MAGIC;
+		pHostapdAdapter->sessionId = HDD_SESSION_ID_INVALID;
 
 
 		hdd_info("pWlanHostapdDev = %p, pHostapdAdapter = %p, concurrency_mode=0x%x",
 		hdd_info("pWlanHostapdDev = %p, pHostapdAdapter = %p, concurrency_mode=0x%x",
 		       pWlanHostapdDev,
 		       pWlanHostapdDev,

+ 2 - 2
core/hdd/src/wlan_hdd_main.c

@@ -2393,6 +2393,7 @@ static hdd_adapter_t *hdd_alloc_station_adapter(hdd_context_t *hdd_ctx,
 		adapter->dev = pWlanDev;
 		adapter->dev = pWlanDev;
 		adapter->pHddCtx = hdd_ctx;
 		adapter->pHddCtx = hdd_ctx;
 		adapter->magic = WLAN_HDD_ADAPTER_MAGIC;
 		adapter->magic = WLAN_HDD_ADAPTER_MAGIC;
+		adapter->sessionId = HDD_SESSION_ID_INVALID;
 
 
 		init_completion(&adapter->session_open_comp_var);
 		init_completion(&adapter->session_open_comp_var);
 		init_completion(&adapter->session_close_comp_var);
 		init_completion(&adapter->session_close_comp_var);
@@ -3218,8 +3219,6 @@ hdd_adapter_t *hdd_open_adapter(hdd_context_t *hdd_ctx, uint8_t session_type,
 	if (QDF_STATUS_SUCCESS != hdd_debugfs_init(adapter))
 	if (QDF_STATUS_SUCCESS != hdd_debugfs_init(adapter))
 		hdd_err("Interface %s wow debug_fs init failed", iface_name);
 		hdd_err("Interface %s wow debug_fs init failed", iface_name);
 
 
-	adapter->sessionId = HDD_SESSION_ID_INVALID;
-
 	return adapter;
 	return adapter;
 
 
 err_lro_cleanup:
 err_lro_cleanup:
@@ -3369,6 +3368,7 @@ static void hdd_wait_for_sme_close_sesion(hdd_context_t *hdd_ctx,
 			sme_close_session(hdd_ctx->hHal, adapter->sessionId,
 			sme_close_session(hdd_ctx->hHal, adapter->sessionId,
 				hdd_sme_close_session_callback,
 				hdd_sme_close_session_callback,
 				adapter)) {
 				adapter)) {
+		adapter->sessionId = HDD_SESSION_ID_INVALID;
 		/*
 		/*
 		 * Block on a completion variable. Can't wait
 		 * Block on a completion variable. Can't wait
 		 * forever though.
 		 * forever though.