Эх сурвалжийг харах

qcacld-3.0: Fix compilation issues in FILS roaming

Fix compilation issues in FILS roaming

Change-Id: Ib33873fbace5ad9a4788b7968562b934270035a1
CRs-Fixed: 2095625
Sridhar Selvaraj 7 жил өмнө
parent
commit
e526044735

+ 15 - 0
core/hdd/inc/wlan_hdd_assoc.h

@@ -357,11 +357,26 @@ QDF_STATUS hdd_roam_deregister_sta(struct hdd_adapter *adapter, uint8_t sta_id);
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
 void hdd_wma_send_fastreassoc_cmd(struct hdd_adapter *adapter,
 void hdd_wma_send_fastreassoc_cmd(struct hdd_adapter *adapter,
 				  const tSirMacAddr bssid, int channel);
 				  const tSirMacAddr bssid, int channel);
+/**
+ * hdd_save_gtk_params() - Save GTK offload params
+ * @adapter: HDD adapter
+ * @csr_roam_info: CSR roam info
+ * @is_reassoc: boolean to indicate roaming
+ *
+ * Return: None
+ */
+void hdd_save_gtk_params(struct hdd_adapter *adapter,
+			 tCsrRoamInfo *csr_roam_info, bool is_reassoc);
 #else
 #else
 static inline void hdd_wma_send_fastreassoc_cmd(struct hdd_adapter *adapter,
 static inline void hdd_wma_send_fastreassoc_cmd(struct hdd_adapter *adapter,
 		const tSirMacAddr bssid, int channel)
 		const tSirMacAddr bssid, int channel)
 {
 {
 }
 }
+static inline void hdd_save_gtk_params(struct hdd_adapter *adapter,
+				       tCsrRoamInfo *csr_roam_info,
+				       bool is_reassoc)
+{
+}
 #endif
 #endif
 
 
 #endif
 #endif

+ 27 - 5
core/hdd/src/wlan_hdd_assoc.c

@@ -2052,6 +2052,32 @@ static inline void hdd_send_roamed_ind(struct net_device *dev,
 }
 }
 #endif
 #endif
 
 
+#if defined(WLAN_FEATURE_ROAM_OFFLOAD)
+void hdd_save_gtk_params(struct hdd_adapter *adapter,
+			 tCsrRoamInfo *csr_roam_info, bool is_reassoc)
+{
+	uint8_t *kek;
+	uint32_t kek_len;
+
+	if (is_reassoc) {
+		kek = csr_roam_info->kek;
+		kek_len = csr_roam_info->kek_len;
+	} else {
+		/*
+		 * This should come for FILS case only.
+		 * Caller should make sure fils_join_rsp is
+		 * not NULL, if there is need to use else where.
+		 */
+		kek = csr_roam_info->fils_join_rsp->kek;
+		kek_len = csr_roam_info->fils_join_rsp->kek_len;
+	}
+
+	wlan_hdd_save_gtk_offload_params(adapter, NULL, kek, kek_len,
+					 csr_roam_info->replay_ctr, true);
+
+	hdd_debug("Kek len %d", kek_len);
+}
+#endif
 /**
 /**
  * hdd_send_re_assoc_event() - send reassoc event
  * hdd_send_re_assoc_event() - send reassoc event
  * @dev: pointer to net device
  * @dev: pointer to net device
@@ -2187,10 +2213,7 @@ static void hdd_send_re_assoc_event(struct net_device *dev,
 		(u8 *)pCsrRoamInfo->pbFrames + pCsrRoamInfo->nBeaconLength,
 		(u8 *)pCsrRoamInfo->pbFrames + pCsrRoamInfo->nBeaconLength,
 		pCsrRoamInfo->nAssocReqLength);
 		pCsrRoamInfo->nAssocReqLength);
 
 
-	wlan_hdd_save_gtk_offload_params(adapter, NULL,
-			pCsrRoamInfo->kek,
-			pCsrRoamInfo->kek_len,
-			pCsrRoamInfo->replay_ctr, true);
+	hdd_save_gtk_params(adapter, pCsrRoamInfo, true);
 
 
 	hdd_debug("ReAssoc Req IE dump");
 	hdd_debug("ReAssoc Req IE dump");
 	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_DEBUG,
 	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_DEBUG,
@@ -2200,7 +2223,6 @@ static void hdd_send_re_assoc_event(struct net_device *dev,
 			assoc_req_ies, pCsrRoamInfo->nAssocReqLength,
 			assoc_req_ies, pCsrRoamInfo->nAssocReqLength,
 			rspRsnIe, rspRsnLength,
 			rspRsnIe, rspRsnLength,
 			pCsrRoamInfo);
 			pCsrRoamInfo);
-	hdd_debug("Kek len %d", pCsrRoamInfo->kek_len);
 
 
 	hdd_update_hlp_info(dev, pCsrRoamInfo);
 	hdd_update_hlp_info(dev, pCsrRoamInfo);
 
 

+ 3 - 1
core/hdd/src/wlan_hdd_cfg80211.c

@@ -5400,7 +5400,7 @@ void wlan_hdd_save_gtk_offload_params(struct hdd_adapter *adapter,
 }
 }
 #endif
 #endif
 
 
-#ifdef WLAN_FEATURE_FILS_SK
+#if defined(WLAN_FEATURE_FILS_SK) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
 /**
 /**
  * wlan_hdd_add_fils_params_roam_auth_event() - Adds FILS params in roam auth
  * wlan_hdd_add_fils_params_roam_auth_event() - Adds FILS params in roam auth
  * @skb: SK buffer
  * @skb: SK buffer
@@ -19765,6 +19765,7 @@ static void hdd_update_chan_info(struct hdd_context *hdd_ctx,
 #undef MAX_COUNT
 #undef MAX_COUNT
 
 
 #if defined(WLAN_FEATURE_FILS_SK) &&\
 #if defined(WLAN_FEATURE_FILS_SK) &&\
+	defined(CFG80211_FILS_SK_OFFLOAD_SUPPORT) &&\
 	(defined(CFG80211_UPDATE_CONNECT_PARAMS) ||\
 	(defined(CFG80211_UPDATE_CONNECT_PARAMS) ||\
 		(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)))
 		(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)))
 
 
@@ -20217,6 +20218,7 @@ static struct cfg80211_ops wlan_hdd_cfg80211_ops = {
 	.abort_scan = wlan_hdd_cfg80211_abort_scan,
 	.abort_scan = wlan_hdd_cfg80211_abort_scan,
 #endif
 #endif
 #if defined(WLAN_FEATURE_FILS_SK) &&\
 #if defined(WLAN_FEATURE_FILS_SK) &&\
+	defined(CFG80211_FILS_SK_OFFLOAD_SUPPORT) &&\
 	(defined(CFG80211_UPDATE_CONNECT_PARAMS) ||\
 	(defined(CFG80211_UPDATE_CONNECT_PARAMS) ||\
 		(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)))
 		(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)))
 	.update_connect_params = wlan_hdd_cfg80211_update_connect_params,
 	.update_connect_params = wlan_hdd_cfg80211_update_connect_params,

+ 1 - 4
core/hdd/src/wlan_hdd_main.c

@@ -5007,10 +5007,7 @@ static void hdd_connect_done(struct net_device *dev, const u8 *bssid,
 					 roam_fils_params->fils_pmk_len,
 					 roam_fils_params->fils_pmk_len,
 					 roam_fils_params->fils_pmkid,
 					 roam_fils_params->fils_pmkid,
 					 roam_info->fils_seq_num);
 					 roam_info->fils_seq_num);
-		wlan_hdd_save_gtk_offload_params(adapter, NULL,
-					roam_fils_params->kek,
-					roam_fils_params->kek_len,
-					roam_info->replay_ctr, true);
+		hdd_save_gtk_params(adapter, roam_info, false);
 	}
 	}
 	hdd_debug("FILS indicate connect status %d seq no %d",
 	hdd_debug("FILS indicate connect status %d seq no %d",
 		  fils_params.status,
 		  fils_params.status,

+ 2 - 0
core/sme/inc/csr_api.h

@@ -1364,6 +1364,8 @@ typedef struct tagCsrUpdateConfigParam {
 #define csr_roamIsRoamOffloadEnabled(pMac) \
 #define csr_roamIsRoamOffloadEnabled(pMac) \
 	(pMac->roam.configParam.isRoamOffloadEnabled)
 	(pMac->roam.configParam.isRoamOffloadEnabled)
 #define DEFAULT_REASSOC_FAILURE_TIMEOUT 1000
 #define DEFAULT_REASSOC_FAILURE_TIMEOUT 1000
+#else
+#define csr_roamIsRoamOffloadEnabled(pMac)  false
 #endif
 #endif
 
 
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD

+ 1 - 1
core/sme/src/common/sme_api.c

@@ -7162,7 +7162,7 @@ QDF_STATUS sme_update_fils_config(tHalHandle hal, uint8_t session_id,
 	}
 	}
 
 
 	csr_update_fils_config(mac, session_id, src_profile);
 	csr_update_fils_config(mac, session_id, src_profile);
-	if (mac->roam.configParam.isRoamOffloadEnabled) {
+	if (csr_roamIsRoamOffloadEnabled(mac)) {
 		sme_debug("Updating fils config to fw");
 		sme_debug("Updating fils config to fw");
 		csr_roam_offload_scan(mac, session_id,
 		csr_roam_offload_scan(mac, session_id,
 				      ROAM_SCAN_OFFLOAD_UPDATE_CFG,
 				      ROAM_SCAN_OFFLOAD_UPDATE_CFG,

+ 1 - 1
core/sme/src/csr/csr_api_roam.c

@@ -20640,7 +20640,7 @@ void csr_roam_fill_tdls_info(tpAniSirGlobal mac_ctx, tCsrRoamInfo *roam_info,
 }
 }
 #endif
 #endif
 
 
-#if defined(WLAN_FEATURE_FILS_SK)
+#if defined(WLAN_FEATURE_FILS_SK) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
 static void csr_copy_fils_join_rsp_roam_info(tCsrRoamInfo *roam_info,
 static void csr_copy_fils_join_rsp_roam_info(tCsrRoamInfo *roam_info,
 				      roam_offload_synch_ind *roam_synch_data)
 				      roam_offload_synch_ind *roam_synch_data)
 {
 {