From e84ac077e5e1cddd31a2e80c5eb654798beab86c Mon Sep 17 00:00:00 2001 From: Aravind Kishore Sukla Date: Mon, 6 Jun 2022 16:45:36 +0530 Subject: [PATCH] qcacmn: Update connect request crypto parameters Update the connect request crypto parameters based on the new kernel changes to increase the size of the akm_suites array in connect request Change-Id: I6e9cecdb6fa02da5f2b2e238780d3f0fb389c8a2 CRs-Fixed: 3214567 --- os_if/linux/mlme/src/osif_cm_req.c | 84 ++++++++++-------------------- 1 file changed, 27 insertions(+), 57 deletions(-) diff --git a/os_if/linux/mlme/src/osif_cm_req.c b/os_if/linux/mlme/src/osif_cm_req.c index ddb27fa05b..35248b59bf 100644 --- a/os_if/linux/mlme/src/osif_cm_req.c +++ b/os_if/linux/mlme/src/osif_cm_req.c @@ -120,61 +120,6 @@ static void osif_cm_set_auth_type(struct wlan_cm_connect_req *connect_req, QDF_SET_PARAM(connect_req->crypto.auth_type, crypto_auth_type); } -#ifdef CFG80211_MULTI_AKM_CONNECT_SUPPORT -static void -osif_cm_set_akm_params(struct wlan_cm_connect_req *connect_req, - const struct cfg80211_connect_params *req) -{ - uint32_t i = 0; - wlan_crypto_key_mgmt akm; - - /* Fill AKM suites */ - if (req->crypto.n_connect_akm_suites) { - for (i = 0; i < req->crypto.n_connect_akm_suites && - i < WLAN_CM_MAX_CONNECT_AKMS; i++) { - akm = osif_nl_to_crypto_akm_type( - req->crypto.connect_akm_suites[i]); - QDF_SET_PARAM(connect_req->crypto.akm_suites, akm); - } - } else { - QDF_SET_PARAM(connect_req->crypto.akm_suites, - WLAN_CRYPTO_KEY_MGMT_NONE); - } -} - -static int -osif_cm_get_num_akm_suites(const struct cfg80211_connect_params *req) -{ - return req->crypto.n_connect_akm_suites; -} - -static uint32_t* -osif_cm_get_akm_suites(const struct cfg80211_connect_params *req) -{ - return (uint32_t *)req->crypto.connect_akm_suites; -} -#else -static void -osif_cm_set_akm_params(struct wlan_cm_connect_req *connect_req, - const struct cfg80211_connect_params *req) -{ - uint32_t i = 0; - wlan_crypto_key_mgmt akm; - - /* Fill AKM suites */ - if (req->crypto.n_akm_suites) { - for (i = 0; i < req->crypto.n_akm_suites && - i < NL80211_MAX_NR_AKM_SUITES; i++) { - akm = osif_nl_to_crypto_akm_type( - req->crypto.akm_suites[i]); - QDF_SET_PARAM(connect_req->crypto.akm_suites, akm); - } - } else { - QDF_SET_PARAM(connect_req->crypto.akm_suites, - WLAN_CRYPTO_KEY_MGMT_NONE); - } -} - static int osif_cm_get_num_akm_suites(const struct cfg80211_connect_params *req) { @@ -186,13 +131,38 @@ osif_cm_get_akm_suites(const struct cfg80211_connect_params *req) { return (uint32_t *)req->crypto.akm_suites; } + +#ifdef CFG80211_MULTI_AKM_CONNECT_SUPPORT +#define MAX_AKM_SUITES WLAN_CM_MAX_CONNECT_AKMS +#else +#define MAX_AKM_SUITES NL80211_MAX_NR_AKM_SUITES #endif +static void +osif_cm_set_akm_params(struct wlan_cm_connect_req *connect_req, + const struct cfg80211_connect_params *req) +{ + uint32_t i; + wlan_crypto_key_mgmt akm; + + /* Fill AKM suites */ + if (req->crypto.n_akm_suites) { + for (i = 0; i < req->crypto.n_akm_suites && + i < MAX_AKM_SUITES; i++) { + akm = osif_nl_to_crypto_akm_type( + req->crypto.akm_suites[i]); + QDF_SET_PARAM(connect_req->crypto.akm_suites, akm); + } + } else { + QDF_SET_PARAM(connect_req->crypto.akm_suites, + WLAN_CRYPTO_KEY_MGMT_NONE); + } +} static QDF_STATUS osif_cm_set_crypto_params(struct wlan_cm_connect_req *connect_req, const struct cfg80211_connect_params *req) { - uint32_t i = 0; + uint32_t i; QDF_STATUS status; wlan_crypto_cipher_type cipher = WLAN_CRYPTO_CIPHER_NONE; @@ -519,7 +489,7 @@ void osif_update_partner_vdev_info(struct wlan_objmgr_vdev *vdev, struct mlo_partner_info partner_info) { struct wlan_objmgr_vdev *tmp_vdev; - uint8_t i = 0; + uint8_t i; if (!vdev) return;