mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
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:
parent
f1cab52a92
commit
0ac759fc1c
27 changed files with 375 additions and 607 deletions
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue