Selaa lähdekoodia

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 vuotta sitten
vanhempi
sitoutus
94c1dac609
1 muutettua tiedostoa jossa 8 lisäystä ja 0 poistoa
  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);