Procházet zdrojové kódy

qcacld-3.0: Update UMAC peer objmgr handle to DP peer

At DP peer creation update UMAC peer objmgr handle to the
DP peer structure. Also update the DP peer handle to the UMAC
peer objmgr handle.

Change-Id: I9983fe9626eae9d2ad6e3b2a6fde9183f5bf6356
CRs-Fixed: 2259804
Sravan Kumar Kairam před 6 roky
rodič
revize
c273afd8e8

+ 2 - 1
core/dp/txrx/ol_txrx.c

@@ -2824,7 +2824,7 @@ static void ol_txrx_dump_peer_access_list(ol_txrx_peer_handle peer)
  */
 static void *
 ol_txrx_peer_attach(struct cdp_vdev *pvdev, uint8_t *peer_mac_addr,
-		    void *ol_peer)
+		    struct cdp_ctrl_objmgr_peer *ctrl_peer)
 {
 	struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
 	struct ol_txrx_peer_t *peer;
@@ -2918,6 +2918,7 @@ ol_txrx_peer_attach(struct cdp_vdev *pvdev, uint8_t *peer_mac_addr,
 
 	/* store provided params */
 	peer->vdev = vdev;
+	peer->ctrl_peer = peer->ctrl_peer;
 	qdf_mem_copy(&peer->mac_addr.raw[0], peer_mac_addr,
 		     OL_TXRX_MAC_ADDR_LEN);
 

+ 3 - 0
core/dp/txrx/ol_txrx_types.h

@@ -1244,6 +1244,9 @@ struct ol_txrx_cached_bufq_t {
 struct ol_txrx_peer_t {
 	struct ol_txrx_vdev_t *vdev;
 
+	/* UMAC peer objmgr handle */
+	struct cdp_ctrl_objmgr_peer *ctrl_peer;
+
 	qdf_atomic_t ref_cnt;
 	qdf_atomic_t access_list[PEER_DEBUG_ID_MAX];
 	qdf_atomic_t delete_in_progress;

+ 4 - 1
core/wma/src/wma_dev_if.c

@@ -1755,7 +1755,8 @@ QDF_STATUS wma_create_peer(tp_wma_handle wma, struct cdp_pdev *pdev,
 	 * where the HTT peer map event is received before the peer object
 	 * is created in the data path
 	 */
-	peer = cdp_peer_create(dp_soc, vdev, peer_addr, NULL);
+	peer = cdp_peer_create(dp_soc, vdev, peer_addr,
+			       (struct cdp_ctrl_objmgr_peer *)obj_peer);
 	if (!peer) {
 		WMA_LOGE("%s : Unable to attach peer %pM", __func__, peer_addr);
 		wlan_objmgr_peer_obj_delete(obj_peer);
@@ -1765,6 +1766,8 @@ QDF_STATUS wma_create_peer(tp_wma_handle wma, struct cdp_pdev *pdev,
 		 __func__, vdev, peer, peer_addr, vdev_id,
 		 wma->interfaces[vdev_id].peer_count);
 
+	wlan_peer_set_dp_handle(obj_peer, peer);
+
 	if (roam_synch_in_progress) {
 		WMA_LOGD("%s: LFR3: Created peer %pK with peer_addr %pM vdev_id %d, peer_count - %d",
 			 __func__, peer, peer_addr, vdev_id,