Jelajahi Sumber

Merge "qcacmn: Fix standby link removal fail"

Linux Build Service Account 1 tahun lalu
induk
melakukan
a37c07953b
2 mengubah file dengan 31 tambahan dan 0 penghapusan
  1. 6 0
      umac/mlme/include/wlan_vdev_mlme.h
  2. 25 0
      umac/mlo_mgr/src/wlan_mlo_mgr_sta.c

+ 6 - 0
umac/mlme/include/wlan_vdev_mlme.h

@@ -28,6 +28,7 @@
 
 struct vdev_mlme_obj;
 struct cnx_mgr;
+struct ml_rv_info;
 
 /* Requestor ID for multiple vdev restart */
 #define MULTIPLE_VDEV_RESTART_REQ_ID 0x1234
@@ -721,6 +722,8 @@ enum vdev_start_resp_type {
  *                                      the first ml reconfig IE
  * @mlme_vdev_reconfig_timer_complete:  callback to process ml reconfing
  *                                      operation
+ * @mlme_vdev_reconfig_notify_standby: callback to notify to process standby
+ *                                      link removal
  * @mlme_vdev_notify_mlo_sync_wait_entry:
  */
 struct vdev_mlme_ops {
@@ -806,6 +809,9 @@ struct vdev_mlme_ops {
 				uint16_t *tbtt_count, uint16_t bcn_int);
 	void (*mlme_vdev_reconfig_timer_complete)(
 				struct vdev_mlme_obj *vdev_mlme);
+	QDF_STATUS (*mlme_vdev_reconfig_notify_standby)(
+				struct vdev_mlme_obj *vdev_mlme,
+				struct ml_rv_info *reconfig_info);
 	QDF_STATUS (*mlme_vdev_notify_mlo_sync_wait_entry)(
 				struct vdev_mlme_obj *vdev_mlme);
 };

+ 25 - 0
umac/mlo_mgr/src/wlan_mlo_mgr_sta.c

@@ -2012,6 +2012,29 @@ QDF_STATUS mlo_sta_handle_csa_standby_link(
 	qdf_mem_free(params.chan);
 	return status;
 }
+
+static void mlo_sta_handle_link_reconfig_standby_link(
+			struct wlan_objmgr_vdev *vdev,
+			struct ml_rv_info *reconfig_info)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+	if (!vdev_mlme)
+		return;
+	if (vdev_mlme->ops &&
+	    vdev_mlme->ops->mlme_vdev_reconfig_notify_standby) {
+		vdev_mlme->ops->mlme_vdev_reconfig_notify_standby(
+				vdev_mlme,
+				reconfig_info);
+	}
+}
+#else
+static void mlo_sta_handle_link_reconfig_standby_link(
+			struct wlan_objmgr_vdev *vdev,
+			struct ml_rv_info *reconfig_info)
+{
+}
 #endif
 
 QDF_STATUS mlo_sta_csa_save_params(struct wlan_mlo_dev_context *mlo_dev_ctx,
@@ -2704,6 +2727,8 @@ check_ml_rv:
 		}
 	}
 
+	mlo_sta_handle_link_reconfig_standby_link(vdev, &reconfig_info);
+
 err_release_refs:
 
 	for (i = 0; i < vdev_count; i++)