diff options
| author | Jeff Johnson <jjohnson@qca.qualcomm.com> | 2015-08-12 19:18:11 -0700 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-08-14 13:29:19 +0530 |
| commit | 57c1ba99e5f36ffe7ebb3e65dafcaaf523bfbc51 (patch) | |
| tree | 7e272e5e1c206919d3c2b6cd4199d36b525c9bab | |
| parent | 8ad373ff2ef842737d56ef878dea2035d33675d2 (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.c | 32 |
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 */ |
