summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnson <jjohnson@qca.qualcomm.com>2015-08-12 19:18:11 -0700
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-08-14 13:29:19 +0530
commit57c1ba99e5f36ffe7ebb3e65dafcaaf523bfbc51 (patch)
tree7e272e5e1c206919d3c2b6cd4199d36b525c9bab
parent8ad373ff2ef842737d56ef878dea2035d33675d2 (diff)
qcacld-2.0: SSR-protect wlan_hdd_cfg80211_wifi_configuration_set()
Currently wlan_hdd_cfg80211_wifi_configuration_set() does not use the SSR protection wrapper. This can lead to unexpected behavior if the function is executing concurrently with SSR, so add the SSR protection wrapper. Change-Id: I47c8468da2bd75b2da5da5b0594bda628e663946 CRs-Fixed: 889507
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index d7628cb17e37..46cbdd66f070 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -8201,7 +8201,7 @@ wlan_hdd_wifi_config_policy[QCA_WLAN_VENDOR_ATTR_CONFIG_MAX
/**
- * wlan_hdd_cfg80211_wifi_configuration_set() - Wifi configuration
+ * __wlan_hdd_cfg80211_wifi_configuration_set() - Wifi configuration
* vendor command
*
* @wiphy: wiphy device pointer
@@ -8213,7 +8213,7 @@ wlan_hdd_wifi_config_policy[QCA_WLAN_VENDOR_ATTR_CONFIG_MAX
*
* Return: EOK or other error codes.
*/
-static int wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy,
+static int __wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy,
struct wireless_dev *wdev,
const void *data,
int data_len)
@@ -8284,6 +8284,34 @@ static int wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy,
return ret_val;
}
+/**
+ * wlan_hdd_cfg80211_wifi_configuration_set() - Wifi configuration
+ * vendor command
+ *
+ * @wiphy: wiphy device pointer
+ * @wdev: wireless device pointer
+ * @data: Vendor command data buffer
+ * @data_len: Buffer length
+ *
+ * Handles QCA_WLAN_VENDOR_ATTR_CONFIG_MAX.
+ *
+ * Return: EOK or other error codes.
+ */
+static int wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy,
+ struct wireless_dev *wdev,
+ const void *data,
+ int data_len)
+{
+ int ret;
+
+ vos_ssr_protect(__func__);
+ ret = __wlan_hdd_cfg80211_wifi_configuration_set(wiphy, wdev,
+ data, data_len);
+ vos_ssr_unprotect(__func__);
+
+ return ret;
+}
+
#ifdef FEATURE_WLAN_TDLS
/* TDLS capabilities params */