qcacmn: Handle vdev start stop delete event in mc thread
vdev start/stop/delete event need be handled in mc thread to avoid race condition issue. Change vdev start/stop/delete event handler as static Change-Id: I360c3b34a18c41c506179225168d3bb490fc8823 CRs-Fixed: 2554731
This commit is contained in:
@@ -79,45 +79,6 @@ void target_if_timer_flush_handler(struct wlan_objmgr_pdev *pdev,
|
|||||||
*/
|
*/
|
||||||
void target_if_flush_vdev_timers(struct wlan_objmgr_pdev *pdev);
|
void target_if_flush_vdev_timers(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
/**
|
|
||||||
* target_if_vdev_mgr_delete_response_handler() - API to handle vdev delete
|
|
||||||
* response
|
|
||||||
* @scn: pointer to scan object
|
|
||||||
* @data: pointer to data
|
|
||||||
* @datalen: length of data
|
|
||||||
*
|
|
||||||
* Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
|
|
||||||
*/
|
|
||||||
int target_if_vdev_mgr_delete_response_handler(ol_scn_t scn,
|
|
||||||
uint8_t *data,
|
|
||||||
uint32_t datalen);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* target_if_vdev_mgr_stop_response_handler() - API to handle vdev stop
|
|
||||||
* response
|
|
||||||
* @scn: pointer to scan object
|
|
||||||
* @data: pointer to data
|
|
||||||
* @datalen: length of data
|
|
||||||
*
|
|
||||||
* Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
|
|
||||||
*/
|
|
||||||
int target_if_vdev_mgr_stop_response_handler(ol_scn_t scn,
|
|
||||||
uint8_t *data,
|
|
||||||
uint32_t datalen);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* target_if_vdev_mgr_start_response_handler() - API to handle vdev stop
|
|
||||||
* response
|
|
||||||
* @scn: pointer to scan object
|
|
||||||
* @data: pointer to data
|
|
||||||
* @datalen: length of data
|
|
||||||
*
|
|
||||||
* Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
|
|
||||||
*/
|
|
||||||
int target_if_vdev_mgr_start_response_handler(ol_scn_t scn,
|
|
||||||
uint8_t *data,
|
|
||||||
uint32_t datalen);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* target_if_vdev_mgr_offload_bcn_tx_status_handler() - API to handle beacon
|
* target_if_vdev_mgr_offload_bcn_tx_status_handler() - API to handle beacon
|
||||||
* tx status event
|
* tx status event
|
||||||
|
@@ -183,7 +183,7 @@ void target_if_flush_vdev_timers(struct wlan_objmgr_pdev *pdev)
|
|||||||
NULL, true, WLAN_VDEV_TARGET_IF_ID);
|
NULL, true, WLAN_VDEV_TARGET_IF_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SERIALIZE_VDEV_RESP_TIMER
|
#ifdef SERIALIZE_VDEV_RESP
|
||||||
static QDF_STATUS target_if_vdev_mgr_rsp_flush_cb(struct scheduler_msg *msg)
|
static QDF_STATUS target_if_vdev_mgr_rsp_flush_cb(struct scheduler_msg *msg)
|
||||||
{
|
{
|
||||||
struct wlan_objmgr_vdev *vdev = msg->bodyptr;
|
struct wlan_objmgr_vdev *vdev = msg->bodyptr;
|
||||||
@@ -222,16 +222,20 @@ void target_if_vdev_mgr_rsp_timer_mgmt_cb(void *arg)
|
|||||||
{
|
{
|
||||||
target_if_vdev_mgr_rsp_cb_mc_ctx(arg);
|
target_if_vdev_mgr_rsp_cb_mc_ctx(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define VDEV_RSP_RX_CTX WMI_RX_SERIALIZER_CTX
|
||||||
#else
|
#else
|
||||||
void target_if_vdev_mgr_rsp_timer_mgmt_cb(void *arg)
|
void target_if_vdev_mgr_rsp_timer_mgmt_cb(void *arg)
|
||||||
{
|
{
|
||||||
target_if_vdev_mgr_rsp_timer_cb(arg);
|
target_if_vdev_mgr_rsp_timer_cb(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define VDEV_RSP_RX_CTX WMI_RX_UMAC_CTX
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int target_if_vdev_mgr_start_response_handler(ol_scn_t scn,
|
static int target_if_vdev_mgr_start_response_handler(ol_scn_t scn,
|
||||||
uint8_t *data,
|
uint8_t *data,
|
||||||
uint32_t datalen)
|
uint32_t datalen)
|
||||||
{
|
{
|
||||||
QDF_STATUS status = QDF_STATUS_E_INVAL;
|
QDF_STATUS status = QDF_STATUS_E_INVAL;
|
||||||
struct wlan_objmgr_psoc *psoc;
|
struct wlan_objmgr_psoc *psoc;
|
||||||
@@ -318,9 +322,9 @@ release_vdev_target_if_ref:
|
|||||||
return qdf_status_to_os_return(status);
|
return qdf_status_to_os_return(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
int target_if_vdev_mgr_stop_response_handler(ol_scn_t scn,
|
static int target_if_vdev_mgr_stop_response_handler(ol_scn_t scn,
|
||||||
uint8_t *data,
|
uint8_t *data,
|
||||||
uint32_t datalen)
|
uint32_t datalen)
|
||||||
{
|
{
|
||||||
QDF_STATUS status = QDF_STATUS_E_INVAL;
|
QDF_STATUS status = QDF_STATUS_E_INVAL;
|
||||||
struct wlan_objmgr_psoc *psoc;
|
struct wlan_objmgr_psoc *psoc;
|
||||||
@@ -393,9 +397,9 @@ release_vdev_target_if_ref:
|
|||||||
return qdf_status_to_os_return(status);
|
return qdf_status_to_os_return(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
int target_if_vdev_mgr_delete_response_handler(ol_scn_t scn,
|
static int target_if_vdev_mgr_delete_response_handler(ol_scn_t scn,
|
||||||
uint8_t *data,
|
uint8_t *data,
|
||||||
uint32_t datalen)
|
uint32_t datalen)
|
||||||
{
|
{
|
||||||
QDF_STATUS status = QDF_STATUS_E_INVAL;
|
QDF_STATUS status = QDF_STATUS_E_INVAL;
|
||||||
struct wlan_objmgr_psoc *psoc;
|
struct wlan_objmgr_psoc *psoc;
|
||||||
@@ -707,7 +711,7 @@ QDF_STATUS target_if_vdev_mgr_wmi_event_register(
|
|||||||
wmi_handle,
|
wmi_handle,
|
||||||
wmi_vdev_stopped_event_id,
|
wmi_vdev_stopped_event_id,
|
||||||
target_if_vdev_mgr_stop_response_handler,
|
target_if_vdev_mgr_stop_response_handler,
|
||||||
WMI_RX_UMAC_CTX);
|
VDEV_RSP_RX_CTX);
|
||||||
if (retval)
|
if (retval)
|
||||||
mlme_err("failed to register for stop response");
|
mlme_err("failed to register for stop response");
|
||||||
|
|
||||||
@@ -715,7 +719,7 @@ QDF_STATUS target_if_vdev_mgr_wmi_event_register(
|
|||||||
wmi_handle,
|
wmi_handle,
|
||||||
wmi_vdev_delete_resp_event_id,
|
wmi_vdev_delete_resp_event_id,
|
||||||
target_if_vdev_mgr_delete_response_handler,
|
target_if_vdev_mgr_delete_response_handler,
|
||||||
WMI_RX_UMAC_CTX);
|
VDEV_RSP_RX_CTX);
|
||||||
if (retval)
|
if (retval)
|
||||||
mlme_err("failed to register for delete response");
|
mlme_err("failed to register for delete response");
|
||||||
|
|
||||||
@@ -723,7 +727,7 @@ QDF_STATUS target_if_vdev_mgr_wmi_event_register(
|
|||||||
wmi_handle,
|
wmi_handle,
|
||||||
wmi_vdev_start_resp_event_id,
|
wmi_vdev_start_resp_event_id,
|
||||||
target_if_vdev_mgr_start_response_handler,
|
target_if_vdev_mgr_start_response_handler,
|
||||||
WMI_RX_UMAC_CTX);
|
VDEV_RSP_RX_CTX);
|
||||||
if (retval)
|
if (retval)
|
||||||
mlme_err("failed to register for start response");
|
mlme_err("failed to register for start response");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user