diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index a78a84d8c4ec..5111a2dae5fc 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/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); diff --git a/core/dp/txrx/ol_txrx_types.h b/core/dp/txrx/ol_txrx_types.h index 778dd2478f5d..bf59093e94fc 100644 --- a/core/dp/txrx/ol_txrx_types.h +++ b/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; diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index d12a5f0620a5..38ffb4b2517b 100644 --- a/core/wma/src/wma_dev_if.c +++ b/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,