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
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 */

View file

@ -250,24 +250,6 @@ pmo_register_get_beacon_interval_callback(struct wlan_objmgr_psoc *psoc,
QDF_STATUS
pmo_unregister_get_beacon_interval_callback(struct wlan_objmgr_psoc *psoc);
/**
* pmo_register_get_vdev_dp_handle(): API to register get vdev datapath handle
* @psoc: objmgr psoc handle
* @handler: get vdev datapath handle callback
*
* Return QDF_STATUS status - in case of success else return error
*/
QDF_STATUS pmo_register_get_vdev_dp_handle(struct wlan_objmgr_psoc *psoc,
pmo_get_vdev_dp_handle handler);
/**
* pmo_unregister_get_vdev_dp_handle(): API to unregister get vdev dp handle
* @psoc: objmgr psoc handle
*
* Return QDF_STATUS status - in case of success else return error
*/
QDF_STATUS pmo_unregister_get_vdev_dp_handle(struct wlan_objmgr_psoc *psoc);
/**
* pmo_register_is_device_in_low_pwr_mode(): API to get register device power
* save check notifier.
@ -401,19 +383,6 @@ pmo_unregister_get_pause_bitmap(struct wlan_objmgr_psoc *psoc)
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
pmo_register_get_vdev_dp_handle(struct wlan_objmgr_psoc *psoc,
pmo_get_vdev_dp_handle handler)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
QDF_STATUS pmo_unregister_get_vdev_dp_handle(struct wlan_objmgr_psoc *psoc)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
pmo_register_is_device_in_low_pwr_mode(struct wlan_objmgr_psoc *psoc,
pmo_is_device_in_low_pwr_mode handler)

View file

@ -740,47 +740,6 @@ pmo_unregister_is_device_in_low_pwr_mode(struct wlan_objmgr_psoc *psoc)
return QDF_STATUS_SUCCESS;
}
QDF_STATUS pmo_register_get_vdev_dp_handle(struct wlan_objmgr_psoc *psoc,
pmo_get_vdev_dp_handle handler)
{
struct pmo_psoc_priv_obj *psoc_ctx;
if (!psoc) {
QDF_BUG(psoc);
pmo_err("psoc is null");
return QDF_STATUS_E_NULL_VALUE;
}
if (!handler) {
QDF_BUG(handler);
pmo_err("pmo_get_vdev_dp_handle is null");
return QDF_STATUS_E_NULL_VALUE;
}
pmo_psoc_with_ctx(psoc, psoc_ctx) {
psoc_ctx->get_vdev_dp_handle = handler;
}
return QDF_STATUS_SUCCESS;
}
QDF_STATUS pmo_unregister_get_vdev_dp_handle(struct wlan_objmgr_psoc *psoc)
{
struct pmo_psoc_priv_obj *psoc_ctx;
if (!psoc) {
QDF_BUG(psoc);
pmo_err("psoc is null");
return QDF_STATUS_E_NULL_VALUE;
}
pmo_psoc_with_ctx(psoc, psoc_ctx) {
psoc_ctx->get_vdev_dp_handle = NULL;
}
return QDF_STATUS_SUCCESS;
}
QDF_STATUS pmo_register_get_dtim_period_callback(struct wlan_objmgr_psoc *psoc,
pmo_get_dtim_period handler)
{