Jelajahi Sumber

qcacld-3.0: Cleanup local peer id from ol_txrx APIs

Local peer_id is being cleaned up across DP, HDD and PS/WMA.
So, any references to local peer_id/sta_id will be replaced
by peer mac address and all interactions between the layers
will be based on peer mac address.

Cleanup local peer id from ol_txrx APIs.

Change-Id: Ibc893fdf1f091f9fc423fca71eb96ee405373d99
CRs-Fixed: 2529036
Yeshwanth Sriram Guntuka 5 tahun lalu
induk
melakukan
33861b1adc
3 mengubah file dengan 20 tambahan dan 42 penghapusan
  1. 4 8
      core/dp/txrx/ol_tx_hl.c
  2. 12 28
      core/dp/txrx/ol_txrx.c
  3. 4 6
      core/dp/txrx/ol_txrx.h

+ 4 - 8
core/dp/txrx/ol_tx_hl.c

@@ -1741,13 +1741,12 @@ void ol_txrx_copy_mac_addr_raw(struct cdp_vdev *pvdev, uint8_t *bss_addr)
  * ol_txrx_add_last_real_peer() - add last peer
  * @pdev: the data physical device
  * @vdev: virtual device
- * @peer_id: peer id
  *
  * Return: None
  */
 void
 ol_txrx_add_last_real_peer(struct cdp_pdev *ppdev,
-			   struct cdp_vdev *pvdev, uint8_t *peer_id)
+			   struct cdp_vdev *pvdev)
 {
 	struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
 	struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
@@ -1755,8 +1754,7 @@ ol_txrx_add_last_real_peer(struct cdp_pdev *ppdev,
 
 	peer = ol_txrx_find_peer_by_addr(
 		(struct cdp_pdev *)pdev,
-		vdev->hl_tdls_ap_mac_addr.raw,
-		peer_id);
+		vdev->hl_tdls_ap_mac_addr.raw);
 
 	qdf_spin_lock_bh(&pdev->last_real_peer_mutex);
 	if (!vdev->last_real_peer && peer &&
@@ -1787,13 +1785,12 @@ bool is_vdev_restore_last_peer(void *ppeer)
  * ol_txrx_update_last_real_peer() - check for vdev last peer
  * @pdev: the data physical device
  * @peer: peer device
- * @peer_id: peer id
  * @restore_last_peer: restore last peer flag
  *
  * Return: None
  */
 void ol_txrx_update_last_real_peer(struct cdp_pdev *ppdev, void *pvdev,
-				   uint8_t *peer_id, bool restore_last_peer)
+				   bool restore_last_peer)
 {
 	struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
 	struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
@@ -1803,8 +1800,7 @@ void ol_txrx_update_last_real_peer(struct cdp_pdev *ppdev, void *pvdev,
 		return;
 
 	peer = ol_txrx_find_peer_by_addr((struct cdp_pdev *)pdev,
-					 vdev->hl_tdls_ap_mac_addr.raw,
-					 peer_id);
+					 vdev->hl_tdls_ap_mac_addr.raw);
 
 	qdf_spin_lock_bh(&pdev->last_real_peer_mutex);
 	if (!vdev->last_real_peer && peer &&

+ 12 - 28
core/dp/txrx/ol_txrx.c

@@ -194,7 +194,7 @@ uint8_t ol_tx_get_is_mgmt_over_wmi_enabled(void)
 #ifdef QCA_SUPPORT_TXRX_LOCAL_PEER_ID
 static void *
 ol_txrx_find_peer_by_addr_and_vdev(struct cdp_pdev *ppdev,
-	struct cdp_vdev *pvdev, uint8_t *peer_addr, uint8_t *peer_id)
+	struct cdp_vdev *pvdev, uint8_t *peer_addr)
 {
 	struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
 	struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
@@ -203,7 +203,6 @@ ol_txrx_find_peer_by_addr_and_vdev(struct cdp_pdev *ppdev,
 	peer = ol_txrx_peer_vdev_find_hash(pdev, vdev, peer_addr, 0, 1);
 	if (!peer)
 		return NULL;
-	*peer_id = peer->local_id;
 	ol_txrx_peer_release_ref(peer, PEER_DEBUG_ID_OL_INTERNAL);
 	return peer;
 }
@@ -229,8 +228,6 @@ ol_txrx_get_vdev_by_peer_addr(struct cdp_pdev *ppdev,
 	struct ol_txrx_pdev_t *pdev = cdp_pdev_to_ol_txrx_pdev_t(ppdev);
 	struct ol_txrx_peer_t *peer = NULL;
 	ol_txrx_vdev_handle vdev;
-	/* peer_id to be removed PEER_ID_CLEANUP */
-	uint8_t peer_id;
 
 	if (!pdev) {
 		QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO_HIGH,
@@ -239,7 +236,7 @@ ol_txrx_get_vdev_by_peer_addr(struct cdp_pdev *ppdev,
 		return NULL;
 	}
 
-	peer = ol_txrx_peer_get_ref_by_addr(pdev, peer_addr.bytes, &peer_id,
+	peer = ol_txrx_peer_get_ref_by_addr(pdev, peer_addr.bytes,
 					    PEER_DEBUG_ID_OL_INTERNAL);
 
 	if (!peer) {
@@ -277,7 +274,6 @@ ol_txrx_wrapper_get_vdev_by_peer_addr(struct cdp_pdev *ppdev,
  * ol_txrx_find_peer_by_addr() - find peer via peer mac addr and peer_id
  * @ppdev: pointer of type cdp_pdev
  * @peer_addr: peer mac addr
- * @peer_id: pointer to fill in the value of peer->local_id for caller
  *
  * This function finds a peer with given mac address and returns its peer_id.
  * Note that this function does not increment the peer->ref_cnt.
@@ -287,8 +283,7 @@ ol_txrx_wrapper_get_vdev_by_peer_addr(struct cdp_pdev *ppdev,
  * Return: peer handle if peer is found, NULL if peer is not found.
  */
 void *ol_txrx_find_peer_by_addr(struct cdp_pdev *ppdev,
-				uint8_t *peer_addr,
-				uint8_t *peer_id)
+				uint8_t *peer_addr)
 {
 	struct ol_txrx_peer_t *peer;
 	struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
@@ -297,7 +292,6 @@ void *ol_txrx_find_peer_by_addr(struct cdp_pdev *ppdev,
 						   PEER_DEBUG_ID_OL_INTERNAL);
 	if (!peer)
 		return NULL;
-	*peer_id = peer->local_id;
 	ol_txrx_peer_release_ref(peer, PEER_DEBUG_ID_OL_INTERNAL);
 	return peer;
 }
@@ -306,7 +300,6 @@ void *ol_txrx_find_peer_by_addr(struct cdp_pdev *ppdev,
  * ol_txrx_peer_get_ref_by_addr() - get peer ref via peer mac addr and peer_id
  * @pdev: pointer of type ol_txrx_pdev_handle
  * @peer_addr: peer mac addr
- * @peer_id: pointer to fill in the value of peer->local_id for caller
  *
  * This function finds the peer with given mac address and returns its peer_id.
  * Note that this function increments the peer->ref_cnt.
@@ -328,7 +321,6 @@ void *ol_txrx_find_peer_by_addr(struct cdp_pdev *ppdev,
  */
 ol_txrx_peer_handle ol_txrx_peer_get_ref_by_addr(ol_txrx_pdev_handle pdev,
 						 u8 *peer_addr,
-						 u8 *peer_id,
 						 enum peer_debug_id_type dbg_id)
 {
 	struct ol_txrx_peer_t *peer;
@@ -337,7 +329,7 @@ ol_txrx_peer_handle ol_txrx_peer_get_ref_by_addr(ol_txrx_pdev_handle pdev,
 						   dbg_id);
 	if (!peer)
 		return NULL;
-	*peer_id = peer->local_id;
+
 	return peer;
 }
 
@@ -3234,15 +3226,13 @@ ol_txrx_clear_peer(struct cdp_pdev *ppdev,
 	struct ol_txrx_peer_t *peer;
 	struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
 	QDF_STATUS status;
-	/* peer_id to be removed */
-	uint8_t peer_id;
 
 	if (!pdev) {
 		ol_txrx_err("Unable to find pdev!");
 		return QDF_STATUS_E_FAILURE;
 	}
 
-	peer = ol_txrx_peer_get_ref_by_addr(pdev, peer_addr.bytes, &peer_id,
+	peer = ol_txrx_peer_get_ref_by_addr(pdev, peer_addr.bytes,
 					    PEER_DEBUG_ID_OL_INTERNAL);
 
 	/* Return success, if the peer is already cleared by
@@ -4910,7 +4900,6 @@ static QDF_STATUS ol_txrx_register_peer(struct ol_txrx_desc_type *sta_desc)
 	struct ol_txrx_pdev_t *pdev = cds_get_context(QDF_MODULE_ID_TXRX);
 	union ol_txrx_peer_update_param_t param;
 	struct privacy_exemption privacy_filter;
-	uint8_t peer_id;
 
 	if (!pdev) {
 		ol_txrx_err("Pdev is NULL");
@@ -4918,8 +4907,7 @@ static QDF_STATUS ol_txrx_register_peer(struct ol_txrx_desc_type *sta_desc)
 	}
 
 	peer = ol_txrx_find_peer_by_addr((struct cdp_pdev *)pdev,
-					 sta_desc->peer_addr.bytes,
-					 &peer_id);
+					 sta_desc->peer_addr.bytes);
 
 	if (!peer)
 		return QDF_STATUS_E_FAULT;
@@ -4947,12 +4935,10 @@ static QDF_STATUS ol_txrx_register_peer(struct ol_txrx_desc_type *sta_desc)
 /**
  * ol_txrx_register_ocb_peer - Function to register the OCB peer
  * @mac_addr: MAC address of the self peer
- * @peer_id: Pointer to the peer ID
  *
  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_FAILURE on failure
  */
-static QDF_STATUS ol_txrx_register_ocb_peer(uint8_t *mac_addr,
-				     uint8_t *peer_id)
+static QDF_STATUS ol_txrx_register_ocb_peer(uint8_t *mac_addr)
 {
 	ol_txrx_pdev_handle pdev;
 	ol_txrx_peer_handle peer;
@@ -4964,7 +4950,7 @@ static QDF_STATUS ol_txrx_register_ocb_peer(uint8_t *mac_addr,
 	}
 
 	peer = ol_txrx_find_peer_by_addr((struct cdp_pdev *)pdev,
-					 mac_addr, peer_id);
+					 mac_addr);
 	if (!peer) {
 		ol_txrx_err("Unable to find OCB peer!");
 		return QDF_STATUS_E_FAILURE;
@@ -5563,33 +5549,31 @@ static QDF_STATUS ol_txrx_wrapper_peer_state_update(struct cdp_pdev *pdev,
  * ol_txrx_wrapper_find_peer_by_addr() - find peer instance by address
  * @pdev: pdev handle
  * @peer_addr: peer address want to find
- * @peer_id: peer id
  *
  * Return: peer instance pointer
  */
 static void *ol_txrx_wrapper_find_peer_by_addr(struct cdp_pdev *pdev,
-		uint8_t *peer_addr, uint8_t *peer_id)
+		uint8_t *peer_addr)
 {
 	return ol_txrx_find_peer_by_addr(pdev,
-				peer_addr, peer_id);
+				peer_addr);
 }
 
 /**
  * ol_txrx_wrapper_peer_get_ref_by_addr() - get peer reference by address
  * @pdev: pdev handle
  * @peer_addr: peer address we want to find
- * @peer_id: peer id
  * @debug_id: peer debug id for tracking
  *
  * Return: peer instance pointer
  */
 static void *
 ol_txrx_wrapper_peer_get_ref_by_addr(struct cdp_pdev *pdev,
-				     u8 *peer_addr, uint8_t *peer_id,
+				     u8 *peer_addr,
 				     enum peer_debug_id_type debug_id)
 {
 	return ol_txrx_peer_get_ref_by_addr((ol_txrx_pdev_handle)pdev,
-					    peer_addr, peer_id, debug_id);
+					    peer_addr, debug_id);
 }
 
 /**

+ 4 - 6
core/dp/txrx/ol_txrx.h

@@ -67,9 +67,8 @@ enum ol_txrx_fc_limit_id {
 
 ol_txrx_peer_handle ol_txrx_peer_get_ref_by_addr(ol_txrx_pdev_handle pdev,
 						 u8 *peer_addr,
-						 u8 *peer_id,
 						 enum peer_debug_id_type
-									dbg_id);
+						 dbg_id);
 
 int  ol_txrx_peer_release_ref(ol_txrx_peer_handle peer,
 			      enum peer_debug_id_type dbg_id);
@@ -218,8 +217,7 @@ ol_txrx_get_vdev_by_peer_addr(struct cdp_pdev *ppdev,
 			      struct qdf_mac_addr peer_addr);
 
 void *ol_txrx_find_peer_by_addr(struct cdp_pdev *pdev,
-				uint8_t *peer_addr,
-				uint8_t *peer_id);
+				uint8_t *peer_addr);
 
 void htt_pkt_log_init(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, void *scn);
 void peer_unmap_timer_handler(void *data);
@@ -317,10 +315,10 @@ ol_txrx_pdev_grp_stat_destroy(struct ol_txrx_pdev_t *pdev) {}
 #if defined(CONFIG_HL_SUPPORT) && defined(FEATURE_WLAN_TDLS)
 void ol_txrx_copy_mac_addr_raw(struct cdp_vdev *pvdev, uint8_t *bss_addr);
 void ol_txrx_add_last_real_peer(struct cdp_pdev *ppdev,
-				struct cdp_vdev *pvdev, uint8_t *peer_id);
+				struct cdp_vdev *pvdev);
 bool is_vdev_restore_last_peer(void *ppeer);
 void ol_txrx_update_last_real_peer(struct cdp_pdev *ppdev, void *pvdev,
-				   uint8_t *peer_id, bool restore_last_peer);
+				   bool restore_last_peer);
 void ol_txrx_set_peer_as_tdls_peer(void *ppeer, bool val);
 void ol_txrx_set_tdls_offchan_enabled(void *ppeer, bool val);
 #endif