瀏覽代碼

qcacld-3.0: Do not send WEP keys to firmware after roaming

LFR module in firmware copies WEP keys from old AP to new AP during
roaming. Host driver should not install 0 length keys during roam
sync indication processing.

Change-Id: I002be0ab330a7161ca2554d9d423e8e1b2170e55
CRs-Fixed: 1096918
Prakash Dhavali 8 年之前
父節點
當前提交
f3287ef57b
共有 1 個文件被更改,包括 14 次插入24 次删除
  1. 14 24
      core/sme/src/csr/csr_api_roam.c

+ 14 - 24
core/sme/src/csr/csr_api_roam.c

@@ -19577,7 +19577,6 @@ void csr_roam_synch_callback(tpAniSirGlobal mac_ctx,
 	tCsrRoamInfo *roam_info;
 	tCsrRoamConnectedProfile *conn_profile = NULL;
 	sme_QosAssocInfo assoc_info;
-	struct qdf_mac_addr bcast_mac = QDF_MAC_ADDR_BROADCAST_INITIALIZER;
 	tpAddBssParams add_bss_params;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 	uint16_t len;
@@ -19687,29 +19686,20 @@ void csr_roam_synch_callback(tpAniSirGlobal mac_ctx,
 			session->pCurRoamProfile->negotiatedAuthType,
 			bss_desc, ies_local);
 	roam_info->isESEAssoc = conn_profile->isESEAssoc;
-	if (CSR_IS_ENC_TYPE_STATIC
-		(session->pCurRoamProfile->negotiatedUCEncryptionType) &&
-		!session->pCurRoamProfile->bWPSAssociation) {
-		if (!QDF_IS_STATUS_SUCCESS(
-			csr_roam_issue_set_context_req(mac_ctx,
-				session_id,
-				session->pCurRoamProfile->negotiatedUCEncryptionType,
-				bss_desc,
-				&(bss_desc->bssId),
-				false, true,
-				eSIR_TX_RX, 0, 0, NULL, 0))) {
-			/* NO keys. these key parameters don't matter */
-			sms_log(mac_ctx, LOGE,
-					FL("Set context for unicast fail"));
-			csr_roam_substate_change(mac_ctx,
-					eCSR_ROAM_SUBSTATE_NONE, session_id);
-		}
-		csr_roam_issue_set_context_req(mac_ctx, session_id,
-			session->pCurRoamProfile->negotiatedMCEncryptionType,
-			bss_desc,
-			&bcast_mac.bytes, false, false,
-			eSIR_TX_RX, 0, 0, NULL, 0);
-	}
+
+	/*
+	 * Encryption keys for new connection are obtained as follows:
+	 * authStatus = CSR_ROAM_AUTH_STATUS_AUTHENTICATED
+	 * Open - No keys required.
+	 * Static WEP - Firmware copies keys from old AP to new AP.
+	 * Fast roaming authentications e.g. PSK, FT, CCKM - firmware
+	 *      supplicant obtains them through 4-way handshake.
+	 *
+	 * authStatus = CSR_ROAM_AUTH_STATUS_CONNECTED
+	 * All other authentications - Host supplicant performs EAPOL
+	 *      with AP after this point and sends new keys to the driver.
+	 *      Driver starts wait_for_key timer for that purpose.
+	 */
 	if ((roam_synch_data->authStatus
 				== CSR_ROAM_AUTH_STATUS_AUTHENTICATED)) {
 		QDF_TRACE(QDF_MODULE_ID_SME,