Merge tag 'LA.UM.9.14.r1-25800-LAHAINA.QSSI15.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0 into android13-5.4-lahaina
"LA.UM.9.14.r1-25800-LAHAINA.QSSI15.0" * tag 'LA.UM.9.14.r1-25800-LAHAINA.QSSI15.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0: qcacld-3.0: Fix the possible OOB write in country IE unpack qcacld-3.0: Correcting the TSInfo structure size according to the Spec Release 2.0.8.34Y qcacld-3.0: Correcting the TSInfo structure size according to the Spec Release 2.0.8.34X qcacld-3.0: Remove use-after-free of frame in tx mgmt send Release 2.0.8.34W qcacld-3.0: Fix the possible OOB write in country IE unpack Release 2.0.8.34V qcacld-3.0: Enhance the RSNXE inter-op logic Release 2.0.8.34U qcacld-3.0: Set sar safety req resp event before unsolited work stop Release 2.0.8.34T qcacld-3.0: Update connect request crypto parameters qcacld-3.0: Enable CFG80211_MULTI_AKM_CONNECT_SUPPORT from kernelv6.0 qcacld-3.0: Update wiphy max_num_akms_connect variable Change-Id: I79d549c4c8c2f38dc18509f91f12befc15bb19c6
This commit is contained in:
commit
48d717fa96
8 changed files with 45 additions and 82 deletions
|
|
@ -17364,7 +17364,7 @@ wlan_hdd_update_akm_suit_info(struct wiphy *wiphy)
|
|||
static void
|
||||
wlan_hdd_update_max_connect_akm(struct wiphy *wiphy)
|
||||
{
|
||||
wiphy->max_num_akms_connect = WLAN_CM_MAX_CONNECT_AKMS;
|
||||
wiphy->max_num_akm_suites = WLAN_CM_MAX_CONNECT_AKMS;
|
||||
}
|
||||
#else
|
||||
static void
|
||||
|
|
@ -20518,7 +20518,23 @@ static bool wlan_hdd_is_akm_suite_fils(uint32_t key_mgmt)
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
hdd_get_num_akm_suites(const struct cfg80211_connect_params *req)
|
||||
{
|
||||
return req->crypto.n_akm_suites;
|
||||
}
|
||||
|
||||
static uint32_t*
|
||||
hdd_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
|
||||
/**
|
||||
* hdd_populate_crypto_akm_type() - populate akm type for crypto
|
||||
* @vdev: pointed to vdev obmgr
|
||||
|
|
@ -20538,64 +20554,9 @@ hdd_populate_crypto_akm_type(struct wlan_objmgr_vdev *vdev,
|
|||
uint32_t set_val = 0;
|
||||
wlan_crypto_key_mgmt akm;
|
||||
|
||||
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]);
|
||||
|
||||
HDD_SET_BIT(set_val, akm);
|
||||
}
|
||||
|
||||
status = wlan_crypto_set_vdev_param(vdev,
|
||||
WLAN_CRYPTO_PARAM_KEY_MGMT,
|
||||
set_val);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
hdd_err("Failed to set akm type %0x to crypto",
|
||||
set_val);
|
||||
|
||||
status = wlan_crypto_set_vdev_param(
|
||||
vdev, WLAN_CRYPTO_PARAM_ORIG_KEY_MGMT, set_val);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
hdd_err("Failed to set original akm type %0x to crypto",
|
||||
set_val);
|
||||
} else {
|
||||
set_val = 0;
|
||||
/* Reset to none */
|
||||
HDD_SET_BIT(set_val, WLAN_CRYPTO_KEY_MGMT_NONE);
|
||||
wlan_crypto_set_vdev_param(vdev,
|
||||
WLAN_CRYPTO_PARAM_KEY_MGMT,
|
||||
set_val);
|
||||
wlan_crypto_set_vdev_param(vdev,
|
||||
WLAN_CRYPTO_PARAM_ORIG_KEY_MGMT,
|
||||
set_val);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
hdd_get_num_akm_suites(const struct cfg80211_connect_params *req)
|
||||
{
|
||||
return req->crypto.n_connect_akm_suites;
|
||||
}
|
||||
|
||||
static uint32_t*
|
||||
hdd_get_akm_suites(const struct cfg80211_connect_params *req)
|
||||
{
|
||||
return (uint32_t *)req->crypto.connect_akm_suites;
|
||||
}
|
||||
#else
|
||||
static void
|
||||
hdd_populate_crypto_akm_type(struct wlan_objmgr_vdev *vdev,
|
||||
const struct cfg80211_connect_params *req)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
uint32_t i = 0;
|
||||
uint32_t set_val = 0;
|
||||
wlan_crypto_key_mgmt akm;
|
||||
|
||||
if (req->crypto.n_akm_suites) {
|
||||
for (i = 0; i < req->crypto.n_akm_suites &&
|
||||
i < NL80211_MAX_NR_AKM_SUITES; i++) {
|
||||
i < MAX_AKM_SUITES; i++) {
|
||||
akm = osif_nl_to_crypto_akm_type(
|
||||
req->crypto.akm_suites[i]);
|
||||
|
||||
|
|
@ -20628,19 +20589,6 @@ hdd_populate_crypto_akm_type(struct wlan_objmgr_vdev *vdev,
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
hdd_get_num_akm_suites(const struct cfg80211_connect_params *req)
|
||||
{
|
||||
return req->crypto.n_akm_suites;
|
||||
}
|
||||
|
||||
static uint32_t*
|
||||
hdd_get_akm_suites(const struct cfg80211_connect_params *req)
|
||||
{
|
||||
return (uint32_t *)req->crypto.akm_suites;
|
||||
}
|
||||
#endif
|
||||
|
||||
static bool wlan_hdd_is_conn_type_fils(struct cfg80211_connect_params *req)
|
||||
{
|
||||
enum nl80211_auth_type auth_type = req->auth_type;
|
||||
|
|
|
|||
|
|
@ -208,6 +208,20 @@ extern const struct nla_policy wlan_hdd_wisa_cmd_policy[
|
|||
#define USE_CFG80211_DEL_STA_V2
|
||||
#endif
|
||||
|
||||
/*
|
||||
* CFG80211_MULTI_AKM_CONNECT_SUPPORT
|
||||
* used to indicate the Linux kernel contains support for multi AKM connect
|
||||
* support
|
||||
*
|
||||
* This feature was introduced in Linux Kernel 6.0 via:
|
||||
* ecad3b0b99bf wifi: cfg80211: Increase akm_suites array size in
|
||||
* cfg80211_crypto_settings.
|
||||
*/
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 0, 0) || \
|
||||
(defined CFG80211_MAX_NUM_AKM_SUITES))
|
||||
#define CFG80211_MULTI_AKM_CONNECT_SUPPORT 1
|
||||
#endif
|
||||
|
||||
#ifdef CFG80211_MULTI_AKM_CONNECT_SUPPORT
|
||||
#define WLAN_CM_MAX_CONNECT_AKMS 5
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021, 2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -1082,10 +1082,11 @@ void wlan_hdd_sar_timers_reset(struct hdd_context *hdd_ctx)
|
|||
if (QDF_IS_STATUS_SUCCESS(status))
|
||||
hdd_nofl_debug("sar safety timer started");
|
||||
|
||||
qdf_event_set(&hdd_ctx->sar_safety_req_resp_event);
|
||||
|
||||
qdf_delayed_work_stop_sync(&hdd_ctx->sar_safety_unsolicited_work);
|
||||
hdd_nofl_debug("sar safety unsolicited work stopped");
|
||||
|
||||
qdf_event_set(&hdd_ctx->sar_safety_req_resp_event);
|
||||
}
|
||||
|
||||
void wlan_hdd_sar_timers_init(struct hdd_context *hdd_ctx)
|
||||
|
|
|
|||
|
|
@ -32,9 +32,9 @@
|
|||
#define QWLAN_VERSION_MAJOR 2
|
||||
#define QWLAN_VERSION_MINOR 0
|
||||
#define QWLAN_VERSION_PATCH 8
|
||||
#define QWLAN_VERSION_EXTRA "S"
|
||||
#define QWLAN_VERSION_EXTRA "Y"
|
||||
#define QWLAN_VERSION_BUILD 34
|
||||
|
||||
#define QWLAN_VERSIONSTR "2.0.8.34S"
|
||||
#define QWLAN_VERSIONSTR "2.0.8.34Y"
|
||||
|
||||
#endif /* QWLAN_VERSION_H */
|
||||
|
|
|
|||
|
|
@ -370,7 +370,7 @@ FF SMPowerModeSet (1) //7.3.1.25
|
|||
}
|
||||
}
|
||||
|
||||
FF TSInfo (3) // 7.3.2.30
|
||||
FF TSInfo (4) // 7.3.2.30
|
||||
{
|
||||
{
|
||||
traffic_type: 1;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
*
|
||||
*
|
||||
* This file was automatically generated by 'framesc'
|
||||
* Mon May 30 20:50:39 2022 from the following file(s):
|
||||
* Wed Sep 11 12:49:28 2024 from the following file(s):
|
||||
*
|
||||
* dot11f.frms
|
||||
*
|
||||
|
|
@ -442,7 +442,7 @@ typedef struct sDot11fFfTSInfo {
|
|||
uint32_t unused:15;
|
||||
} tDot11fFfTSInfo;
|
||||
|
||||
#define DOT11F_FF_TSINFO_LEN (3)
|
||||
#define DOT11F_FF_TSINFO_LEN (4)
|
||||
|
||||
void dot11f_unpack_ff_ts_info(tpAniSirGlobal, uint8_t *, tDot11fFfTSInfo *);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
*
|
||||
*
|
||||
* This file was automatically generated by 'framesc'
|
||||
* Mon May 30 20:50:39 2022 from the following file(s):
|
||||
* Wed Sep 11 12:49:28 2024 from the following file(s):
|
||||
*
|
||||
* dot11f.frms
|
||||
*
|
||||
|
|
@ -134,7 +134,7 @@ typedef struct sIEDefn {
|
|||
#define DOT11F_PARAMETER_CHECK2(pSrc, pBuf, nBuf, pnConsumed) \
|
||||
do { \
|
||||
if (!pSrc || IsBadReadPtr(pSrc, 4))\
|
||||
eturn DOT11F_BAD_INPUT_BUFFER; \
|
||||
return DOT11F_BAD_INPUT_BUFFER; \
|
||||
if (!pBuf || IsBadWritePtr(pBuf, nBuf))\
|
||||
return DOT11F_BAD_OUTPUT_BUFFER; \
|
||||
if (!nBuf)\
|
||||
|
|
@ -4131,7 +4131,7 @@ uint32_t dot11f_unpack_ie_country(tpAniSirGlobal pCtx,
|
|||
return 0U;
|
||||
} else {
|
||||
pDst->num_more_triplets = (uint8_t)(ielen / 3);
|
||||
if (ielen / 3 > 80) {
|
||||
if (ielen > 80 * 3) {
|
||||
pDst->present = 0;
|
||||
return DOT11F_SKIPPED_BAD_IE;
|
||||
}
|
||||
|
|
@ -16710,7 +16710,7 @@ uint32_t dot11f_get_packed_del_ts_size(tpAniSirGlobal pCtx,
|
|||
tDot11fDelTS *pFrm, uint32_t *pnNeeded)
|
||||
{
|
||||
uint32_t status = 0;
|
||||
*pnNeeded = 7;
|
||||
*pnNeeded = 8;
|
||||
status = get_packed_size_core(pCtx, (uint8_t *)pFrm, pnNeeded,
|
||||
IES_DelTS);
|
||||
return status;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue