From e7dd0bad099f3153456f1539c62615b03008a0a6 Mon Sep 17 00:00:00 2001
From: Carter Chen <carter.chen@infineon.com>
Date: Sun, 8 Sep 2024 21:54:27 -0500
Subject: [PATCH 289/292] non-upstream: fix set/del pmksa fail on kernel 6.6

Revert "wifi: brcmfmac: cfg80211: Add support for PMKID_V3 operations"

This reverts commit a96202acaea47fa8377088e0952bb63bd02a3bab.

Signed-off-by: Carter Chen <carter.chen@infineon.com>

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index 8c7c6b2afe4a..db663cf41f42 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -4989,40 +4989,6 @@ static s32 brcmf_cfg80211_suspend(struct wiphy *wiphy,
 	return 0;
 }
 
-static s32
-brcmf_pmksa_v3_op(struct brcmf_if *ifp, struct cfg80211_pmksa *pmksa,
-		  bool alive)
-{
-	struct brcmf_pmk_op_v3_le *pmk_op;
-	int length = offsetof(struct brcmf_pmk_op_v3_le, pmk);
-	int ret;
-
-	pmk_op = kzalloc(sizeof(*pmk_op), GFP_KERNEL);
-	if (!pmk_op)
-		return -ENOMEM;
-
-	pmk_op->version = cpu_to_le16(BRCMF_PMKSA_VER_3);
-
-	if (!pmksa) {
-		/* Flush operation, operate on entire list */
-		pmk_op->count = cpu_to_le16(0);
-	} else {
-		/* Single PMK operation */
-		pmk_op->count = cpu_to_le16(1);
-		length += sizeof(struct brcmf_pmksa_v3);
-		memcpy(pmk_op->pmk[0].bssid, pmksa->bssid, ETH_ALEN);
-		memcpy(pmk_op->pmk[0].pmkid, pmksa->pmkid, WLAN_PMKID_LEN);
-		pmk_op->pmk[0].pmkid_len = WLAN_PMKID_LEN;
-		pmk_op->pmk[0].time_left = cpu_to_le32(alive ? BRCMF_PMKSA_NO_EXPIRY : 0);
-	}
-
-	pmk_op->length = cpu_to_le16(length);
-
-	ret = brcmf_fil_iovar_data_set(ifp, "pmkid_info", pmk_op, sizeof(*pmk_op));
-	kfree(pmk_op);
-	return ret;
-}
-
 static __used s32
 brcmf_update_pmklist(struct brcmf_cfg80211_info *cfg, struct brcmf_if *ifp)
 {
@@ -5123,9 +5089,6 @@ brcmf_cfg80211_set_pmksa(struct wiphy *wiphy, struct net_device *ndev,
 	brcmf_dbg(CONN, "set_pmksa - PMK bssid: %pM =\n", pmksa->bssid);
 	brcmf_dbg(CONN, "%*ph\n", WLAN_PMKID_LEN, pmksa->pmkid);
 
-	if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PMKID_V3))
-		return brcmf_pmksa_v3_op(ifp, pmksa, true);
-
 	/* TODO: implement PMKID_V2 */
 	err = brcmf_update_pmksa(cfg, ifp, pmksa->bssid, pmksa->pmkid, PMKSA_SET);
 	if (err < 0) {
@@ -5167,9 +5130,6 @@ brcmf_cfg80211_del_pmksa(struct wiphy *wiphy, struct net_device *ndev,
 
 	brcmf_dbg(CONN, "del_pmksa - PMK bssid = %pM\n", pmksa->bssid);
 
-	if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PMKID_V3))
-		return brcmf_pmksa_v3_op(ifp, pmksa, false);
-
 	/* TODO: implement PMKID_V2 */
 	err = brcmf_update_pmksa(cfg, ifp, pmksa->bssid, pmksa->pmkid, PMKSA_DELETE);
 	if (err < 0) {
@@ -5194,9 +5154,6 @@ brcmf_cfg80211_flush_pmksa(struct wiphy *wiphy, struct net_device *ndev)
 	if (!check_vif_up(ifp->vif))
 		return -EIO;
 
-	if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PMKID_V3))
-		return brcmf_pmksa_v3_op(ifp, NULL, false);
-
 	/* TODO: implement PMKID_V2 */
 
 	memset(&cfg->pmk_list, 0, sizeof(cfg->pmk_list));
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
index 6fa149f4adaa..60fac0535843 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
@@ -198,10 +198,6 @@ enum {
 
 #define BRCMF_HE_CAP_MCS_MAP_NSS_MAX	8
 
-#define BRCMF_PMKSA_VER_2		2
-#define BRCMF_PMKSA_VER_3		3
-#define BRCMF_PMKSA_NO_EXPIRY		0xffffffff
-
 #define BRCMF_EXTAUTH_START	1
 #define BRCMF_EXTAUTH_ABORT	2
 #define BRCMF_EXTAUTH_FAIL	3
@@ -440,12 +436,6 @@ struct brcmf_ssid_le {
 	unsigned char SSID[IEEE80211_MAX_SSID_LEN];
 };
 
-/* Alternate SSID structure used in some places... */
-struct brcmf_ssid8_le {
-	u8 SSID_len;
-	unsigned char SSID[IEEE80211_MAX_SSID_LEN];
-};
-
 struct brcmf_scan_params_le {
 	struct brcmf_ssid_le ssid_le;	/* default: {0, ""} */
 	u8 bssid[ETH_ALEN];	/* default: bcast */
@@ -1017,51 +1007,6 @@ struct brcmf_pmksa {
 	u8 pmkid[WLAN_PMKID_LEN];
 };
 
-/**
- * struct brcmf_pmksa_v2 - PMK Security Association
- *
- * @length: Length of the structure.
- * @bssid: The AP's BSSID.
- * @pmkid: The PMK ID.
- * @pmk: PMK material for FILS key derivation.
- * @pmk_len: Length of PMK data.
- * @ssid: The AP's SSID.
- * @fils_cache_id: FILS cache identifier
- */
-struct brcmf_pmksa_v2 {
-	__le16 length;
-	u8 bssid[ETH_ALEN];
-	u8 pmkid[WLAN_PMKID_LEN];
-	u8 pmk[WLAN_PMK_LEN_SUITE_B_192];
-	__le16 pmk_len;
-	struct brcmf_ssid8_le ssid;
-	u16 fils_cache_id;
-};
-
-/**
- * struct brcmf_pmksa_v3 - PMK Security Association
- *
- * @bssid: The AP's BSSID.
- * @pmkid: The PMK ID.
- * @pmkid_len: The length of the PMK ID.
- * @pmk: PMK material for FILS key derivation.
- * @pmk_len: Length of PMK data.
- * @fils_cache_id: FILS cache identifier
- * @ssid: The AP's SSID.
- * @time_left: Remaining time until expiry. 0 = expired, ~0 = no expiry.
- */
-struct brcmf_pmksa_v3 {
-	u8 bssid[ETH_ALEN];
-	u8 pmkid[WLAN_PMKID_LEN];
-	u8 pmkid_len;
-	u8 pmk[WLAN_PMK_LEN_SUITE_B_192];
-	u8 pmk_len;
-	__le16 fils_cache_id;
-	u8 pad;
-	struct brcmf_ssid8_le ssid;
-	__le32 time_left;
-};
-
 /**
  * struct brcmf_pmk_list_le - List of pmksa's.
  *
@@ -1073,34 +1018,6 @@ struct brcmf_pmk_list_le {
 	struct brcmf_pmksa pmk[BRCMF_MAXPMKID];
 };
 
-/**
- * struct brcmf_pmk_list_v2_le - List of pmksa's.
- *
- * @version: Request version.
- * @length: Length of this structure.
- * @pmk: PMK SA information.
- */
-struct brcmf_pmk_list_v2_le {
-	__le16 version;
-	__le16 length;
-	struct brcmf_pmksa_v2 pmk[BRCMF_MAXPMKID];
-};
-
-/**
- * struct brcmf_pmk_op_v3_le - Operation on PMKSA list.
- *
- * @version: Request version.
- * @length: Length of this structure.
- * @pmk: PMK SA information.
- */
-struct brcmf_pmk_op_v3_le {
-	__le16 version;
-	__le16 length;
-	__le16 count;
-	__le16 pad;
-	struct brcmf_pmksa_v3 pmk[BRCMF_MAXPMKID];
-};
-
 /**
  * struct brcmf_pno_param_le - PNO scan configuration parameters
  *
-- 
2.25.1

