ソースを参照

qcacmn: Check vdev id when get cfr rcc enabled params

Host stops cfr without vdev id check. In MLO case, the other link
stops firstly and it will get mac id base on wrong vdev id. Finallly,
it cause FW assert. This change adds vdev id check when getting cfr
rcc enabled params and trying to stop cfr.

Change-Id: I745ff5398b3f00fdb84b62b0835c1dd2ab75fae1
CRs-Fixed: 3296067
Wu Gao 2 年 前
コミット
94c1dac609
1 ファイル変更8 行追加0 行削除
  1. 8 0
      umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c

+ 8 - 0
umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c

@@ -1423,6 +1423,14 @@ bool ucfg_cfr_get_rcc_enabled(struct wlan_objmgr_vdev *vdev)
 	if (status != QDF_STATUS_SUCCESS)
 		return false;
 
+	if ((pcfr->rcc_param.vdev_id != CFR_INVALID_VDEV_ID) &&
+	    (pcfr->rcc_param.vdev_id != wlan_vdev_get_id(vdev))) {
+		cfr_debug("vdev id mismatch, input %d, pcfr %d",
+			  wlan_vdev_get_id(vdev),
+			  pcfr->rcc_param.vdev_id);
+		return false;
+	}
+
 	rcc_enabled = cfr_is_filter_enabled(&pcfr->rcc_param);
 	wlan_objmgr_pdev_release_ref(pdev, WLAN_CFR_ID);