浏览代码

qcacld-3.0: Make sure that peer exists before updating peer state

Before sending tdls peer state update command to FW make sure
that tdls peer exists.

Change-Id: I26b5daf9896b0f57fbcfedadcabd67ddd000b257
CRs-Fixed: 2032770
Ganesh Kondabattini 8 年之前
父节点
当前提交
3bf9efe42a
共有 1 个文件被更改,包括 19 次插入17 次删除
  1. 19 17
      core/wma/src/wma_features.c

+ 19 - 17
core/wma/src/wma_features.c

@@ -4243,6 +4243,25 @@ int wma_update_tdls_peer_state(WMA_HANDLE handle,
 					 chanId);
 	}
 
+	/* Make sure that peer exists before sending peer state cmd*/
+	pdev = cds_get_context(QDF_MODULE_ID_TXRX);
+	if (!pdev) {
+		WMA_LOGE("%s: Failed to find pdev", __func__);
+		ret = -EIO;
+		goto end_tdls_peer_state;
+	}
+
+	peer = cdp_peer_find_by_addr(soc,
+			pdev,
+			peerStateParams->peerMacAddr,
+			&peer_id);
+	if (!peer) {
+		WMA_LOGE("%s: Failed to get peer handle using peer mac %pM",
+				__func__, peerStateParams->peerMacAddr);
+		ret = -EIO;
+		goto end_tdls_peer_state;
+	}
+
 	if (wmi_unified_update_tdls_peer_state_cmd(wma_handle->wmi_handle,
 			 (struct tdls_peer_state_params *)peerStateParams,
 			 ch_mhz)) {
@@ -4254,23 +4273,6 @@ int wma_update_tdls_peer_state(WMA_HANDLE handle,
 
 	/* in case of teardown, remove peer from fw */
 	if (WMA_TDLS_PEER_STATE_TEARDOWN == peerStateParams->peerState) {
-		pdev = cds_get_context(QDF_MODULE_ID_TXRX);
-		if (!pdev) {
-			WMA_LOGE("%s: Failed to find pdev", __func__);
-			ret = -EIO;
-			goto end_tdls_peer_state;
-		}
-
-		peer = cdp_peer_find_by_addr(soc,
-					pdev,
-					peerStateParams->peerMacAddr,
-					&peer_id);
-		if (!peer) {
-			WMA_LOGE("%s: Failed to get peer handle using peer mac %pM",
-				__func__, peerStateParams->peerMacAddr);
-			ret = -EIO;
-			goto end_tdls_peer_state;
-		}
 		peer_mac_addr = cdp_peer_get_peer_mac_addr(soc, peer);
 		if (peer_mac_addr == NULL) {
 			WMA_LOGE("peer_mac_addr is NULL");