qcacld-3.0: 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_data_tx_cb_set
- txrx_mgmt_tx_cb_set
- txrx_mgmt_send_ext
- txrx_pdev_attach_target
- txrx_pdev_detach
- txrx_vdev_attach
- txrx_vdev_register
- txrx_vdev_detach
- txrx_peer_create
- txrx_peer_delete
- txrx_peer_delete_sync
- txrx_fw_stats_get
- txrx_get_vdev_from_vdev_id
- txrx_pdev_set_ctrl_pdev
- txrx_pdev_attach
- txrx_get_vdev_mac_addr
- txrx_pdev_post_attach
- txrx_pdev_pre_detach
- txrx_get_ctrl_pdev_from_vdev
- txrx_get_mon_vdev_from_pdev

Change-Id: Ib8b0b1edd63e7c3f8813b11ca26b50ec121fe255
CRs-Fixed: 2541459
This commit is contained in:
Vevek Venkatesan
2019-10-03 04:14:29 +05:30
committed by nshrivas
parent f1cab52a92
commit 0ac759fc1c
27 changed files with 375 additions and 607 deletions

View File

@@ -74,7 +74,6 @@ static QDF_STATUS ocb_set_chan_info(void *dp_soc,
uint32_t vdev_id,
struct ocb_config *config)
{
struct cdp_vdev *dp_vdev;
struct ol_txrx_ocb_set_chan ocb_set_chan;
struct ol_txrx_ocb_chan_info *ocb_channel_info;
@@ -83,12 +82,6 @@ static QDF_STATUS ocb_set_chan_info(void *dp_soc,
return QDF_STATUS_E_INVAL;
}
dp_vdev = cdp_get_vdev_from_vdev_id(dp_soc, dp_pdev, vdev_id);
if (!dp_vdev) {
ocb_err("DP vdev handle is NULL");
return QDF_STATUS_E_FAILURE;
}
ocb_set_chan.ocb_channel_count = config->channel_count;
/* release old settings */