From add0ba78467d77ea4136619e1c341cd3d0302d2d Mon Sep 17 00:00:00 2001 From: Vijay Pamidipati Date: Tue, 17 Jan 2017 12:53:05 +0530 Subject: [PATCH] qcacmn: Synchronize VDEV_DELETE and VDEV_DOWN with peer delete response Hold additional reference to BSS node during node allocation, and free it in delete response. This ensures BSS Node Freed event is sent to MLME only after receving peer delete response for BSS node. Change-Id: I384eac54f437000a1c09eb53751ad8b8e26617ad CRs-Fixed: 1112381 --- wmi_unified_api.h | 5 +++++ wmi_unified_param.h | 12 ++++++++++++ wmi_unified_priv.h | 5 +++++ 3 files changed, 22 insertions(+) diff --git a/wmi_unified_api.h b/wmi_unified_api.h index 6ef02519e0..aec58834a8 100644 --- a/wmi_unified_api.h +++ b/wmi_unified_api.h @@ -1375,7 +1375,12 @@ QDF_STATUS wmi_extract_reg_cap_service_ready_ext( void *wmi_hdl, uint8_t *evt_buf, uint8_t phy_idx, struct WMI_HOST_HAL_REG_CAPABILITIES_EXT *param); + QDF_STATUS wmi_extract_pdev_utf_event(void *wmi_hdl, uint8_t *evt_buf, struct wmi_host_pdev_utf_event *param); + +QDF_STATUS wmi_extract_peer_delete_response_event(void *wmi_hdl, + uint8_t *evt_buf, + struct wmi_host_peer_delete_response_event *param); #endif /* _WMI_UNIFIED_API_H_ */ diff --git a/wmi_unified_param.h b/wmi_unified_param.h index b271950fbc..59e0b5dcb8 100644 --- a/wmi_unified_param.h +++ b/wmi_unified_param.h @@ -4947,6 +4947,7 @@ typedef enum { wmi_peer_gid_userpos_list_event_id, wmi_pdev_check_cal_version_event_id, wmi_atf_peer_stats_event_id, + wmi_peer_delete_response_event_id, wmi_events_max, } wmi_conv_event_id; @@ -7201,6 +7202,17 @@ struct wmi_host_pdev_utf_event { uint16_t datalen; }; +/** + * struct wmi_host_peer_delete_response_event - Peer Delete response event param + * @vdev_id: vdev id + * @mac_address: Peer Mac Address + * + */ +struct wmi_host_peer_delete_response_event { + uint32_t vdev_id; + struct qdf_mac_addr mac_address; +}; + /** * @struct wmi_host_dcs_interference_param * @interference_type: Type of DCS Interference diff --git a/wmi_unified_priv.h b/wmi_unified_priv.h index e375d2bc82..58d6c127d1 100644 --- a/wmi_unified_priv.h +++ b/wmi_unified_priv.h @@ -1217,6 +1217,11 @@ QDF_STATUS (*extract_pdev_utf_event)(wmi_unified_t wmi_hdl, uint16_t (*wmi_set_htc_tx_tag)(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t cmd_id); + +QDF_STATUS (*extract_peer_delete_response_event)( + wmi_unified_t wmi_handle, + void *evt_buf, + struct wmi_host_peer_delete_response_event *param); }; struct target_abi_version {