From 45e0741472e4792ff5667c2230707f5f68b29de4 Mon Sep 17 00:00:00 2001 From: Min Liu Date: Fri, 25 Dec 2020 16:42:10 +0800 Subject: [PATCH] qcacld-3.0: Fix iwpriv command getMaxAssoc Fix the issue that iwpriv command getMaxAssoc act as setMaxAssoc. Change-Id: I8fddc0ff724147cb55d53b0ce5a918745b3101d3 CRs-Fixed: 2844640 --- components/mlme/dispatcher/inc/wlan_mlme_api.h | 10 ++++++++++ .../mlme/dispatcher/inc/wlan_mlme_ucfg_api.h | 16 ++++++++++++++++ components/mlme/dispatcher/src/wlan_mlme_api.c | 14 ++++++++++++++ core/hdd/src/wlan_hdd_hostapd_wext.c | 2 +- core/hdd/src/wlan_hdd_wext.c | 2 +- 5 files changed, 42 insertions(+), 2 deletions(-) diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index 61ecd4df33..5bbf3cadb6 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -556,6 +556,16 @@ QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc, QDF_STATUS wlan_mlme_set_assoc_sta_limit(struct wlan_objmgr_psoc *psoc, int value); +/** + * wlan_mlme_get_assoc_sta_limit() - Get the assoc sta limit + * @psoc: pointer to psoc object + * @value: Pointer to value that needs to be filled by MLME + * + * Return: QDF Status + */ +QDF_STATUS wlan_mlme_get_assoc_sta_limit(struct wlan_objmgr_psoc *psoc, + int *value); + /** * wlan_mlme_set_sap_get_peer_info() - get the sap get peer info * @psoc: pointer to psoc object diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 9cd6a1fd8d..4af557bce6 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -1585,6 +1585,22 @@ QDF_STATUS ucfg_mlme_set_assoc_sta_limit(struct wlan_objmgr_psoc *psoc, return wlan_mlme_set_assoc_sta_limit(psoc, value); } +/** + * ucfg_mlme_get_assoc_sta_limit() - Get the assoc sta limit + * @psoc: pointer to psoc object + * @value: Pointer to variable that needs to be filled by MLME + * + * Inline UCFG API to be used by HDD/OSIF callers + * + * Return: QDF Status + */ +static inline +QDF_STATUS ucfg_mlme_get_assoc_sta_limit(struct wlan_objmgr_psoc *psoc, + int *value) +{ + return wlan_mlme_get_assoc_sta_limit(psoc, value); +} + /** * ucfg_mlme_get_listen_interval() - Get listen interval * @psoc: pointer to psoc object diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index ba7e173d64..4c93812dde 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -1757,6 +1757,20 @@ QDF_STATUS wlan_mlme_set_assoc_sta_limit(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_SUCCESS; } +QDF_STATUS wlan_mlme_get_assoc_sta_limit(struct wlan_objmgr_psoc *psoc, + int *value) +{ + struct wlan_mlme_psoc_ext_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_ext_obj(psoc); + if (!mlme_obj) + return QDF_STATUS_E_FAILURE; + + *value = mlme_obj->cfg.sap_cfg.assoc_sta_limit; + + return QDF_STATUS_SUCCESS; +} + QDF_STATUS wlan_mlme_get_sap_get_peer_info(struct wlan_objmgr_psoc *psoc, bool *value) { diff --git a/core/hdd/src/wlan_hdd_hostapd_wext.c b/core/hdd/src/wlan_hdd_hostapd_wext.c index 987cc69ab3..13257c8f2c 100644 --- a/core/hdd/src/wlan_hdd_hostapd_wext.c +++ b/core/hdd/src/wlan_hdd_hostapd_wext.c @@ -1141,7 +1141,7 @@ static __iw_softap_getparam(struct net_device *dev, switch (sub_cmd) { case QCSAP_PARAM_MAX_ASSOC: - if (ucfg_mlme_set_assoc_sta_limit(hdd_ctx->psoc, *value) != + if (ucfg_mlme_get_assoc_sta_limit(hdd_ctx->psoc, value) != QDF_STATUS_SUCCESS) { hdd_err("CFG_ASSOC_STA_LIMIT failed"); ret = -EIO; diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index f1a09d5ad6..6e38b5664e 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -5360,7 +5360,7 @@ static int __iw_setnone_getint(struct net_device *dev, } case WE_GET_MAX_ASSOC: { - if (ucfg_mlme_set_assoc_sta_limit(hdd_ctx->psoc, *value) != + if (ucfg_mlme_get_assoc_sta_limit(hdd_ctx->psoc, value) != QDF_STATUS_SUCCESS) { hdd_err("CFG_ASSOC_STA_LIMIT failed"); ret = -EIO;