qcacmn: Separate peer object creation from other initialization

Seperate the dp peer object allocation from setting the peer's
default routing and default rx tid queues.

This change is to address a race condition where the HTT peer map
message arrives before the peer object is created.

Change-Id: Ibb0671d29ffac41fd06bb8a88476f37120d99ccb
CRs-Fixed: 1089662
这个提交包含在:
Dhanashri Atre
2016-11-10 16:27:38 -08:00
提交者 qcabuildsw
父节点 10a93237e6
当前提交 6d90ef32d5
修改 4 个文件,包含 74 行新增22 行删除

查看文件

@@ -102,21 +102,39 @@ cdp_pdev_detach(ol_txrx_soc_handle soc, void *pdev, int force)
return;
}
static inline void *cdp_peer_attach
static inline void *cdp_peer_create
(ol_txrx_soc_handle soc, void *vdev,
uint8_t *peer_mac_addr)
{
if (soc->ops->cmn_drv_ops->txrx_peer_attach)
return soc->ops->cmn_drv_ops->txrx_peer_attach(vdev,
if (soc->ops->cmn_drv_ops->txrx_peer_create)
return soc->ops->cmn_drv_ops->txrx_peer_create(vdev,
peer_mac_addr);
return NULL;
}
static inline void
cdp_peer_detach(ol_txrx_soc_handle soc, void *peer)
static inline void cdp_peer_setup
(ol_txrx_soc_handle soc, void *vdev, void *peer)
{
if (soc->ops->cmn_drv_ops->txrx_peer_detach)
return soc->ops->cmn_drv_ops->txrx_peer_detach(peer);
if (soc->ops->cmn_drv_ops->txrx_peer_setup)
return soc->ops->cmn_drv_ops->txrx_peer_setup(vdev,
peer);
return;
}
static inline void cdp_peer_teardown
(ol_txrx_soc_handle soc, void *vdev, void *peer)
{
if (soc->ops->cmn_drv_ops->txrx_peer_teardown)
return soc->ops->cmn_drv_ops->txrx_peer_teardown(vdev,
peer);
return;
}
static inline void
cdp_peer_delete(ol_txrx_soc_handle soc, void *peer)
{
if (soc->ops->cmn_drv_ops->txrx_peer_delete)
return soc->ops->cmn_drv_ops->txrx_peer_delete(peer);
return;
}