瀏覽代碼

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
(cherry picked from commit b03b971b86c533a19b563c6ab706592248f236f2)
Jianmin Zhu 1 年之前
父節點
當前提交
b47081bdc9
共有 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)