qcacmn: cdp: Converge cdp_cmn_ops

Currently cdp ops are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev_id or vdev_id or peer mac address,
which will be used to get the respective handles,
and hence avoiding the unwanted access of the
handles if it has been deleted.

- txrx_peer_unmap_sync_cb_set
- txrx_fw_stats_get
- txrx_get_ctrl_pdev_from_vdev
- txrx_get_mon_vdev_from_pdev

Change-Id: I4472dc0905edb7700acb4401b117c8876ba455f3
CRs-Fixed: 2541460
这个提交包含在:
Vevek Venkatesan
2019-09-16 23:54:13 +05:30
提交者 nshrivas
父节点 61392d0275
当前提交 27e7bb4d79
修改 5 个文件,包含 194 行新增159 行删除

查看文件

@@ -112,7 +112,7 @@ static inline struct cdp_cfg
/**
* cdp_cfg_vdev_rx_set_intrabss_fwd() - enable/disable intra bass forwarding
* @soc - data path soc handle
* @vdev - virtual interface instance
* @vdev_id - virtual interface id
* @val - enable or disable intra bss forwarding
*
* ap isolate, do not forward intra bss traffic
@@ -121,7 +121,7 @@ static inline struct cdp_cfg
*/
static inline void
cdp_cfg_vdev_rx_set_intrabss_fwd(ol_txrx_soc_handle soc,
struct cdp_vdev *vdev, bool val)
uint8_t vdev_id, bool val)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
@@ -134,7 +134,7 @@ cdp_cfg_vdev_rx_set_intrabss_fwd(ol_txrx_soc_handle soc,
!soc->ops->cfg_ops->vdev_rx_set_intrabss_fwd)
return;
soc->ops->cfg_ops->vdev_rx_set_intrabss_fwd(vdev, val);
soc->ops->cfg_ops->vdev_rx_set_intrabss_fwd(soc, vdev_id, val);
}
/**