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:
Jianmin Zhu
2019-10-22 23:29:08 +08:00
committed by nshrivas
parent 9304a97961
commit 367c36003b
2 changed files with 17 additions and 52 deletions

View File

@@ -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

View File

@@ -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,14 +222,18 @@ 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)
{ {
@@ -318,7 +322,7 @@ 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)
{ {
@@ -393,7 +397,7 @@ 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)
{ {
@@ -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");