Created
December 20, 2021 10:24
-
-
Save marcan/2fc31da6c173d35a5c20f135cf93cf7a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commit e89c8eecc756600ec3dbf1fed73620592eae55af | |
Author: Hector Martin <[email protected]> | |
Date: Mon Dec 20 19:15:58 2021 +0900 | |
brcmfmac: cfg80211: Pass PMK in binary | |
Apparently the hex passphrase mechanism does not work on newer firmware. | |
(Does this need a feature flag?) | |
Signed-off-by: Hector Martin <[email protected]> | |
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | |
index bca788cc37fd..c80b78b7b93c 100644 | |
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | |
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | |
@@ -1420,11 +1420,12 @@ static int brcmf_set_pmk(struct brcmf_if *ifp, const u8 *pmk_data, u16 pmk_len) | |
struct brcmf_wsec_pmk_le pmk; | |
int i, err; | |
- /* convert to firmware key format */ | |
- pmk.key_len = cpu_to_le16(pmk_len << 1); | |
- pmk.flags = cpu_to_le16(BRCMF_WSEC_PASSPHRASE); | |
- for (i = 0; i < pmk_len; i++) | |
- snprintf(&pmk.key[2 * i], 3, "%02x", pmk_data[i]); | |
+ memset(&pmk, 0, sizeof(pmk)); | |
+ | |
+ /* pass pmk directly */ | |
+ pmk.key_len = cpu_to_le16(pmk_len); | |
+ pmk.flags = cpu_to_le16(0); | |
+ memcpy(pmk.key, pmk_data, pmk_len); | |
/* store psk in firmware */ | |
err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_WSEC_PMK, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment