Selaa lähdekoodia

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
Vijay Pamidipati 8 vuotta sitten
vanhempi
sitoutus
add0ba7846
3 muutettua tiedostoa jossa 22 lisäystä ja 0 poistoa
  1. 5 0
      wmi_unified_api.h
  2. 12 0
      wmi_unified_param.h
  3. 5 0
      wmi_unified_priv.h

+ 5 - 0
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_ */

+ 12 - 0
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

+ 5 - 0
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 {