|
@@ -59,6 +59,7 @@ static int __wlan_hdd_cfg80211_spectral_scan_start(struct wiphy *wiphy,
|
|
|
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
|
|
|
struct net_device *dev = wdev->netdev;
|
|
|
struct hdd_adapter *adapter;
|
|
|
+ struct wlan_objmgr_vdev *vdev;
|
|
|
|
|
|
hdd_enter();
|
|
|
|
|
@@ -72,13 +73,20 @@ static int __wlan_hdd_cfg80211_spectral_scan_start(struct wiphy *wiphy,
|
|
|
}
|
|
|
|
|
|
adapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
|
|
- if (wlan_hdd_validate_vdev_id(adapter->vdev_id))
|
|
|
- return -EINVAL;
|
|
|
+ ret = hdd_validate_adapter(adapter);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
|
|
|
+ vdev = hdd_objmgr_get_vdev(adapter);
|
|
|
+ if (!vdev) {
|
|
|
+ hdd_err("can't get vdev");
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
wlan_spectral_update_rx_chainmask(adapter);
|
|
|
- ret = wlan_cfg80211_spectral_scan_config_and_start(wiphy,
|
|
|
- hdd_ctx->pdev,
|
|
|
- data, data_len);
|
|
|
+ ret = wlan_cfg80211_spectral_scan_config_and_start(
|
|
|
+ wiphy, hdd_ctx->pdev,
|
|
|
+ vdev, data, data_len);
|
|
|
+ hdd_objmgr_put_vdev(vdev);
|
|
|
hdd_exit();
|
|
|
|
|
|
return ret;
|
|
@@ -102,6 +110,9 @@ static int __wlan_hdd_cfg80211_spectral_scan_stop(struct wiphy *wiphy,
|
|
|
{
|
|
|
int ret;
|
|
|
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
|
|
|
+ struct net_device *dev = wdev->netdev;
|
|
|
+ struct hdd_adapter *adapter;
|
|
|
+ struct wlan_objmgr_vdev *vdev;
|
|
|
|
|
|
hdd_enter();
|
|
|
|
|
@@ -114,8 +125,19 @@ static int __wlan_hdd_cfg80211_spectral_scan_stop(struct wiphy *wiphy,
|
|
|
return -EPERM;
|
|
|
}
|
|
|
|
|
|
+ adapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
|
|
+ ret = hdd_validate_adapter(adapter);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ vdev = hdd_objmgr_get_vdev(adapter);
|
|
|
+ if (!vdev) {
|
|
|
+ hdd_err("can't get vdev");
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
ret = wlan_cfg80211_spectral_scan_stop(wiphy, hdd_ctx->pdev,
|
|
|
- data, data_len);
|
|
|
+ vdev, data, data_len);
|
|
|
+ hdd_objmgr_put_vdev(vdev);
|
|
|
hdd_exit();
|
|
|
|
|
|
return ret;
|
|
@@ -140,6 +162,9 @@ static int __wlan_hdd_cfg80211_spectral_scan_get_config(
|
|
|
{
|
|
|
int ret;
|
|
|
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
|
|
|
+ struct net_device *dev = wdev->netdev;
|
|
|
+ struct hdd_adapter *adapter;
|
|
|
+ struct wlan_objmgr_vdev *vdev;
|
|
|
|
|
|
hdd_enter();
|
|
|
|
|
@@ -152,8 +177,19 @@ static int __wlan_hdd_cfg80211_spectral_scan_get_config(
|
|
|
return -EPERM;
|
|
|
}
|
|
|
|
|
|
+ adapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
|
|
+ ret = hdd_validate_adapter(adapter);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ vdev = hdd_objmgr_get_vdev(adapter);
|
|
|
+ if (!vdev) {
|
|
|
+ hdd_err("can't get vdev");
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
ret = wlan_cfg80211_spectral_scan_get_config(wiphy, hdd_ctx->pdev,
|
|
|
- data, data_len);
|
|
|
+ vdev, data, data_len);
|
|
|
+ hdd_objmgr_put_vdev(vdev);
|
|
|
hdd_exit();
|
|
|
|
|
|
return ret;
|
|
@@ -178,6 +214,9 @@ static int __wlan_hdd_cfg80211_spectral_scan_get_diag_stats(
|
|
|
{
|
|
|
int ret;
|
|
|
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
|
|
|
+ struct net_device *dev = wdev->netdev;
|
|
|
+ struct hdd_adapter *adapter;
|
|
|
+ struct wlan_objmgr_vdev *vdev;
|
|
|
|
|
|
hdd_enter();
|
|
|
|
|
@@ -190,9 +229,20 @@ static int __wlan_hdd_cfg80211_spectral_scan_get_diag_stats(
|
|
|
return -EPERM;
|
|
|
}
|
|
|
|
|
|
- ret = wlan_cfg80211_spectral_scan_get_diag_stats(wiphy,
|
|
|
- hdd_ctx->pdev,
|
|
|
- data, data_len);
|
|
|
+ adapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
|
|
+ ret = hdd_validate_adapter(adapter);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ vdev = hdd_objmgr_get_vdev(adapter);
|
|
|
+ if (!vdev) {
|
|
|
+ hdd_err("can't get vdev");
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+ ret = wlan_cfg80211_spectral_scan_get_diag_stats(
|
|
|
+ wiphy, hdd_ctx->pdev,
|
|
|
+ vdev, data, data_len);
|
|
|
+ hdd_objmgr_put_vdev(vdev);
|
|
|
hdd_exit();
|
|
|
|
|
|
return ret;
|
|
@@ -217,6 +267,9 @@ static int __wlan_hdd_cfg80211_spectral_scan_get_cap_info(
|
|
|
{
|
|
|
int ret;
|
|
|
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
|
|
|
+ struct net_device *dev = wdev->netdev;
|
|
|
+ struct hdd_adapter *adapter;
|
|
|
+ struct wlan_objmgr_vdev *vdev;
|
|
|
|
|
|
hdd_enter();
|
|
|
|
|
@@ -229,8 +282,19 @@ static int __wlan_hdd_cfg80211_spectral_scan_get_cap_info(
|
|
|
return -EPERM;
|
|
|
}
|
|
|
|
|
|
+ adapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
|
|
+ ret = hdd_validate_adapter(adapter);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ vdev = hdd_objmgr_get_vdev(adapter);
|
|
|
+ if (!vdev) {
|
|
|
+ hdd_err("can't get vdev");
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
ret = wlan_cfg80211_spectral_scan_get_cap(wiphy, hdd_ctx->pdev,
|
|
|
- data, data_len);
|
|
|
+ vdev, data, data_len);
|
|
|
+ hdd_objmgr_put_vdev(vdev);
|
|
|
hdd_exit();
|
|
|
|
|
|
return ret;
|
|
@@ -256,6 +320,9 @@ static int __wlan_hdd_cfg80211_spectral_scan_get_status(
|
|
|
{
|
|
|
int ret;
|
|
|
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
|
|
|
+ struct net_device *dev = wdev->netdev;
|
|
|
+ struct hdd_adapter *adapter;
|
|
|
+ struct wlan_objmgr_vdev *vdev;
|
|
|
|
|
|
hdd_enter();
|
|
|
|
|
@@ -268,8 +335,19 @@ static int __wlan_hdd_cfg80211_spectral_scan_get_status(
|
|
|
return -EPERM;
|
|
|
}
|
|
|
|
|
|
+ adapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
|
|
+ ret = hdd_validate_adapter(adapter);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ vdev = hdd_objmgr_get_vdev(adapter);
|
|
|
+ if (!vdev) {
|
|
|
+ hdd_err("can't get vdev");
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
ret = wlan_cfg80211_spectral_scan_get_status(wiphy, hdd_ctx->pdev,
|
|
|
- data, data_len);
|
|
|
+ vdev, data, data_len);
|
|
|
+ hdd_objmgr_put_vdev(vdev);
|
|
|
hdd_exit();
|
|
|
|
|
|
return ret;
|