Эх сурвалжийг харах

qcacmn: return error if the callback for spectral is NULL

The callback function for spectral may be not registered,
add checking before calling the function, return -ENOTSUPP
if it's NULL.

CRs-Fixed: 2751658
Change-Id: If04fb360cd4ef89f5c8ce007786d636110cb02df
Yu Wang 4 жил өмнө
parent
commit
1761e41191

+ 20 - 0
spectral/dispatcher/src/wlan_spectral_utils_api.c

@@ -140,6 +140,11 @@ spectral_vdev_get_chan_freq(struct wlan_objmgr_vdev *vdev)
 		return -EINVAL;
 	}
 
+	if (!sc->legacy_cbacks.vdev_get_chan_freq) {
+		spectral_err("vdev_get_chan_freq is not supported");
+		return -ENOTSUPP;
+	}
+
 	return sc->legacy_cbacks.vdev_get_chan_freq(vdev);
 }
 
@@ -154,6 +159,11 @@ spectral_vdev_get_chan_freq_seg2(struct wlan_objmgr_vdev *vdev)
 		return -EINVAL;
 	}
 
+	if (!sc->legacy_cbacks.vdev_get_chan_freq_seg2) {
+		spectral_err("vdev_get_chan_freq_seg2 is not supported");
+		return -ENOTSUPP;
+	}
+
 	return sc->legacy_cbacks.vdev_get_chan_freq_seg2(vdev);
 }
 
@@ -168,6 +178,11 @@ spectral_vdev_get_ch_width(struct wlan_objmgr_vdev *vdev)
 		return CH_WIDTH_INVALID;
 	}
 
+	if (!sc->legacy_cbacks.vdev_get_ch_width) {
+		spectral_err("vdev_get_ch_width is not supported");
+		return -ENOTSUPP;
+	}
+
 	return sc->legacy_cbacks.vdev_get_ch_width(vdev);
 }
 
@@ -183,6 +198,11 @@ spectral_vdev_get_sec20chan_freq_mhz(struct wlan_objmgr_vdev *vdev,
 		return -EINVAL;
 	}
 
+	if (!sc->legacy_cbacks.vdev_get_sec20chan_freq_mhz) {
+		spectral_err("vdev_get_sec20chan_freq_mhz is not supported");
+		return -ENOTSUPP;
+	}
+
 	return sc->legacy_cbacks.vdev_get_sec20chan_freq_mhz(vdev,
 							     sec20chan_freq);
 }