From 601f733cc5485508e40811e03b68637b7bb1ffdc Mon Sep 17 00:00:00 2001 From: Srinivas Dasari Date: Tue, 27 Apr 2021 20:14:56 +0530 Subject: [PATCH] qcacld-3.0: Enable SAE authentication for P2P Enable SAE authentication for P2P. This allows to process and forward the SAE auth frames to userspace in P2P_CLI and P2P_GO modes. Change-Id: I210f6b3db4d4d0a39f1dcb7f136ec9ac7e4c34c4 CRs-Fixed: 2933379 --- core/hdd/src/wlan_hdd_cfg80211.c | 1 + core/mac/src/pe/lim/lim_process_message_queue.c | 4 +++- core/sme/src/common/sme_api.c | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index f317aaf71c..00eb02041a 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -534,6 +534,7 @@ static const struct ieee80211_txrx_stypes [NL80211_IFTYPE_P2P_CLIENT] = { .tx = 0xffff, .rx = BIT(SIR_MAC_MGMT_ACTION) | + BIT(SIR_MAC_MGMT_AUTH) | BIT(SIR_MAC_MGMT_PROBE_REQ), }, [NL80211_IFTYPE_P2P_GO] = { diff --git a/core/mac/src/pe/lim/lim_process_message_queue.c b/core/mac/src/pe/lim/lim_process_message_queue.c index 1ab027a962..286cf8cd0e 100644 --- a/core/mac/src/pe/lim/lim_process_message_queue.c +++ b/core/mac/src/pe/lim/lim_process_message_queue.c @@ -207,7 +207,9 @@ static void lim_process_sae_msg(struct mac_context *mac, struct sir_sae_msg *bod } if (session->opmode != QDF_STA_MODE && - session->opmode != QDF_SAP_MODE) { + session->opmode != QDF_SAP_MODE && + session->opmode != QDF_P2P_GO_MODE && + session->opmode != QDF_P2P_CLIENT_MODE) { pe_err("SAE:Not supported in this mode %d", session->opmode); return; diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 409677d3bc..a465bf0603 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -14797,7 +14797,8 @@ QDF_STATUS sme_handle_sae_msg(mac_handle_t mac_handle, * is meant for roaming. */ opmode = wlan_get_opmode_from_vdev_id(mac->pdev, session_id); - if ((opmode == QDF_SAP_MODE) || !CSR_IS_ROAM_JOINED(mac, session_id)) { + if ((opmode == QDF_SAP_MODE) || (opmode == QDF_P2P_GO_MODE) || + !CSR_IS_ROAM_JOINED(mac, session_id)) { sae_msg = qdf_mem_malloc(sizeof(*sae_msg)); if (!sae_msg) { qdf_status = QDF_STATUS_E_NOMEM;