Browse Source

qcacld-3.0: Move disconnect ie info to a structure

Move disconnect ie info to a structure (wlan_disconnect_info)
and use it in mlme_legacy_priv. This helps to enhance the
structure further.

Change-Id: Id16e7eeb45a3f4c2fefac297f6730baf6b9e8991
CRs-Fixed: 2621149
Srinivas Dasari 5 years ago
parent
commit
4a63e6fdbb
2 changed files with 46 additions and 34 deletions
  1. 14 6
      components/mlme/core/inc/wlan_mlme_main.h
  2. 32 28
      components/mlme/core/src/wlan_mlme_main.c

+ 14 - 6
components/mlme/core/inc/wlan_mlme_main.h

@@ -53,6 +53,18 @@ struct wlan_ies {
 	uint8_t *data;
 };
 
+/**
+ * struct wlan_disconnect_info - WLAN Disconnection Information
+ * @self_discon_ies: Disconnect IEs to be sent in deauth/disassoc frames
+ *                   originated from driver
+ * @peer_discon_ies: Disconnect IEs received in deauth/disassoc frames
+ *                       from peer
+ */
+struct wlan_disconnect_info {
+	struct wlan_ies self_discon_ies;
+	struct wlan_ies peer_discon_ies;
+};
+
 /**
  * struct peer_mlme_priv_obj - peer MLME component object
  * @is_pmf_enabled: True if PMF is enabled
@@ -126,10 +138,7 @@ struct wlan_mlme_roam {
  * @ini_cfg: Max configuration of nss, chains supported for vdev.
  * @sta_dynamic_oce_value: Dyanmic oce flags value for sta
  * @roam_invoke_params: Roam invoke params
- * @self_disconnect_ies: Disconnect IEs to be sent in deauth/disassoc frames
- *			 originated from driver
- * @peer_disconnect_ies: Disconnect IEs received in deauth/disassoc frames
- *			 from peer
+ * @disconnect_info: Disconnection information
  * @vdev_stop_type: vdev stop type request
  * @roam_off_state: Roam offload state
  */
@@ -145,8 +154,7 @@ struct mlme_legacy_priv {
 	struct wlan_mlme_nss_chains ini_cfg;
 	uint8_t sta_dynamic_oce_value;
 	struct mlme_roam_after_data_stall roam_invoke_params;
-	struct wlan_ies self_disconnect_ies;
-	struct wlan_ies peer_disconnect_ies;
+	struct wlan_disconnect_info disconnect_info;
 	uint32_t vdev_stop_type;
 	struct wlan_mlme_roam mlme_roam;
 };

+ 32 - 28
components/mlme/core/src/wlan_mlme_main.c

@@ -2394,22 +2394,24 @@ void mlme_set_self_disconnect_ies(struct wlan_objmgr_vdev *vdev,
 		return;
 	}
 
-	if (mlme_priv->self_disconnect_ies.data) {
-		qdf_mem_free(mlme_priv->self_disconnect_ies.data);
-		mlme_priv->self_disconnect_ies.len = 0;
+	if (mlme_priv->disconnect_info.self_discon_ies.data) {
+		qdf_mem_free(mlme_priv->disconnect_info.self_discon_ies.data);
+		mlme_priv->disconnect_info.self_discon_ies.len = 0;
 	}
 
-	mlme_priv->self_disconnect_ies.data = qdf_mem_malloc(ie->len);
-	if (!mlme_priv->self_disconnect_ies.data)
+	mlme_priv->disconnect_info.self_discon_ies.data =
+				qdf_mem_malloc(ie->len);
+	if (!mlme_priv->disconnect_info.self_discon_ies.data)
 		return;
 
-	qdf_mem_copy(mlme_priv->self_disconnect_ies.data, ie->data, ie->len);
-	mlme_priv->self_disconnect_ies.len = ie->len;
+	qdf_mem_copy(mlme_priv->disconnect_info.self_discon_ies.data,
+		     ie->data, ie->len);
+	mlme_priv->disconnect_info.self_discon_ies.len = ie->len;
 
 	mlme_legacy_debug("Self disconnect IEs");
 	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_MLME, QDF_TRACE_LEVEL_DEBUG,
-			   mlme_priv->self_disconnect_ies.data,
-			   mlme_priv->self_disconnect_ies.len);
+			   mlme_priv->disconnect_info.self_discon_ies.data,
+			   mlme_priv->disconnect_info.self_discon_ies.len);
 }
 
 void mlme_free_self_disconnect_ies(struct wlan_objmgr_vdev *vdev)
@@ -2422,10 +2424,10 @@ void mlme_free_self_disconnect_ies(struct wlan_objmgr_vdev *vdev)
 		return;
 	}
 
-	if (mlme_priv->self_disconnect_ies.data) {
-		qdf_mem_free(mlme_priv->self_disconnect_ies.data);
-		mlme_priv->self_disconnect_ies.data = NULL;
-		mlme_priv->self_disconnect_ies.len = 0;
+	if (mlme_priv->disconnect_info.self_discon_ies.data) {
+		qdf_mem_free(mlme_priv->disconnect_info.self_discon_ies.data);
+		mlme_priv->disconnect_info.self_discon_ies.data = NULL;
+		mlme_priv->disconnect_info.self_discon_ies.len = 0;
 	}
 }
 
@@ -2439,7 +2441,7 @@ struct wlan_ies *mlme_get_self_disconnect_ies(struct wlan_objmgr_vdev *vdev)
 		return NULL;
 	}
 
-	return &mlme_priv->self_disconnect_ies;
+	return &mlme_priv->disconnect_info.self_discon_ies;
 }
 
 void mlme_set_peer_disconnect_ies(struct wlan_objmgr_vdev *vdev,
@@ -2458,22 +2460,24 @@ void mlme_set_peer_disconnect_ies(struct wlan_objmgr_vdev *vdev,
 		return;
 	}
 
-	if (mlme_priv->peer_disconnect_ies.data) {
-		qdf_mem_free(mlme_priv->peer_disconnect_ies.data);
-		mlme_priv->peer_disconnect_ies.len = 0;
+	if (mlme_priv->disconnect_info.peer_discon_ies.data) {
+		qdf_mem_free(mlme_priv->disconnect_info.peer_discon_ies.data);
+		mlme_priv->disconnect_info.peer_discon_ies.len = 0;
 	}
 
-	mlme_priv->peer_disconnect_ies.data = qdf_mem_malloc(ie->len);
-	if (!mlme_priv->peer_disconnect_ies.data)
+	mlme_priv->disconnect_info.peer_discon_ies.data =
+					qdf_mem_malloc(ie->len);
+	if (!mlme_priv->disconnect_info.peer_discon_ies.data)
 		return;
 
-	qdf_mem_copy(mlme_priv->peer_disconnect_ies.data, ie->data, ie->len);
-	mlme_priv->peer_disconnect_ies.len = ie->len;
+	qdf_mem_copy(mlme_priv->disconnect_info.peer_discon_ies.data,
+		     ie->data, ie->len);
+	mlme_priv->disconnect_info.peer_discon_ies.len = ie->len;
 
 	mlme_legacy_debug("peer disconnect IEs");
 	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_MLME, QDF_TRACE_LEVEL_DEBUG,
-			   mlme_priv->peer_disconnect_ies.data,
-			   mlme_priv->peer_disconnect_ies.len);
+			   mlme_priv->disconnect_info.peer_discon_ies.data,
+			   mlme_priv->disconnect_info.peer_discon_ies.len);
 }
 
 void mlme_free_peer_disconnect_ies(struct wlan_objmgr_vdev *vdev)
@@ -2486,10 +2490,10 @@ void mlme_free_peer_disconnect_ies(struct wlan_objmgr_vdev *vdev)
 		return;
 	}
 
-	if (mlme_priv->peer_disconnect_ies.data) {
-		qdf_mem_free(mlme_priv->peer_disconnect_ies.data);
-		mlme_priv->peer_disconnect_ies.data = NULL;
-		mlme_priv->peer_disconnect_ies.len = 0;
+	if (mlme_priv->disconnect_info.peer_discon_ies.data) {
+		qdf_mem_free(mlme_priv->disconnect_info.peer_discon_ies.data);
+		mlme_priv->disconnect_info.peer_discon_ies.data = NULL;
+		mlme_priv->disconnect_info.peer_discon_ies.len = 0;
 	}
 }
 
@@ -2503,7 +2507,7 @@ struct wlan_ies *mlme_get_peer_disconnect_ies(struct wlan_objmgr_vdev *vdev)
 		return NULL;
 	}
 
-	return &mlme_priv->peer_disconnect_ies;
+	return &mlme_priv->disconnect_info.peer_discon_ies;
 }
 
 void mlme_set_follow_ap_edca_flag(struct wlan_objmgr_vdev *vdev, bool flag)