From c273afd8e8b66279eb21c5689b2e10dde7dc2c24 Mon Sep 17 00:00:00 2001 From: Sravan Kumar Kairam Date: Mon, 28 May 2018 12:12:28 +0530 Subject: [PATCH] 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 --- core/dp/txrx/ol_txrx.c | 3 ++- core/dp/txrx/ol_txrx_types.h | 3 +++ core/wma/src/wma_dev_if.c | 5 ++++- 3 files changed, 9 insertions(+), 2 deletions(-) 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,