Преглед изворни кода

qcacmn: Send RSO stop to assoc vdev before link vdev stop

RSO stop isn't sent to F/W before link vdev stop when MLO
disconnect, F/W will assert later

To fix it, Send RSO stop to assoc vdev before link vdev stop when MLO
disconnect.

RSO stop for internal link cleanup has no side effect, only RSO disable
clears the RCL in firmware.

Change-Id: Id11da42ebebf0d9966974cc913cf6618cea0cfbb
CRs-Fixed: 3835214
Jianmin Zhu пре 1 година
родитељ
комит
b03b971b86
1 измењених фајлова са 1 додато и 18 уклоњено
  1. 1 18
      umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c

+ 1 - 18
umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c

@@ -408,9 +408,6 @@ QDF_STATUS cm_disconnect_active(struct cnx_mgr *cm_ctx, wlan_cm_id *cm_id)
 	struct wlan_cm_vdev_discon_req *req;
 	struct cm_req *cm_req;
 	QDF_STATUS status = QDF_STATUS_E_NOSUPPORT;
-	enum wlan_reason_code reason_code;
-	enum wlan_cm_source source;
-	enum QDF_OPMODE op_mode;
 
 	cm_ctx->active_cm_id = *cm_id;
 	cm_req = cm_get_req_by_cm_id(cm_ctx, *cm_id);
@@ -428,21 +425,7 @@ QDF_STATUS cm_disconnect_active(struct cnx_mgr *cm_ctx, wlan_cm_id *cm_id)
 		return QDF_STATUS_E_INVAL;
 	}
 
-	reason_code = cm_req->discon_req.req.reason_code;
-	source = cm_req->discon_req.req.source;
-	op_mode = wlan_vdev_mlme_get_opmode(cm_ctx->vdev);
-	mlme_debug(CM_PREFIX_FMT " source %d reason %d",
-		   CM_PREFIX_REF(wlan_vdev_get_id(cm_ctx->vdev), *cm_id),
-		   source, reason_code);
-
-	/*
-	 * Don't send RSO stop for internal link cleanup, as it clears the
-	 * RCL in firmware.
-	 */
-	if (op_mode == QDF_STA_MODE &&
-	    !wlan_vdev_mlme_is_mlo_link_vdev(cm_ctx->vdev) &&
-	    source != CM_MLO_ROAM_INTERNAL_DISCONNECT &&
-	    reason_code != REASON_FW_TRIGGERED_ROAM_FAILURE)
+	if (wlan_vdev_mlme_get_opmode(cm_ctx->vdev) == QDF_STA_MODE)
 		status = mlme_cm_rso_stop_req(cm_ctx->vdev);
 
 	if (status != QDF_STATUS_E_NOSUPPORT)