git: 7d88ac0eb2d2 - main - iwx: clean up debugging around key add/set; comments on delete
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 14 Nov 2025 02:37:34 UTC
The branch main has been updated by adrian:
URL: https://cgit.FreeBSD.org/src/commit/?id=7d88ac0eb2d2e81ac121dd4a32229494594ec44c
commit 7d88ac0eb2d2e81ac121dd4a32229494594ec44c
Author: Adrian Chadd <adrian@FreeBSD.org>
AuthorDate: 2025-11-12 02:49:10 +0000
Commit: Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2025-11-14 02:28:47 +0000
iwx: clean up debugging around key add/set; comments on delete
* Add IWN_DEBUG_KEYMGMT as a debug flag
* Convert DPRINTF(()) in key add/set to IWN_DPRINTF()
* printf() -> net80211_vap_printf()
* add braces around return value
Differential Revision: https://reviews.freebsd.org/D53703
Reviewed by: thj
---
sys/dev/iwx/if_iwx.c | 38 ++++++++++++++++++++++++--------------
sys/dev/iwx/if_iwx_debug.h | 3 ++-
2 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/sys/dev/iwx/if_iwx.c b/sys/dev/iwx/if_iwx.c
index eb5b4a42e616..91f5baee9680 100644
--- a/sys/dev/iwx/if_iwx.c
+++ b/sys/dev/iwx/if_iwx.c
@@ -10940,7 +10940,7 @@ iwx_key_alloc(struct ieee80211vap *vap, struct ieee80211_key *k,
{
if (k->wk_cipher->ic_cipher == IEEE80211_CIPHER_AES_CCM) {
- return 1;
+ return (1);
}
if (ieee80211_is_key_unicast(vap, k)) {
@@ -10953,7 +10953,7 @@ iwx_key_alloc(struct ieee80211vap *vap, struct ieee80211_key *k,
return (0);
}
*rxkeyix = IEEE80211_KEYIX_NONE; /* XXX maybe *keyix? */
- return 1;
+ return (1);
}
static int
@@ -10980,9 +10980,11 @@ iwx_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k)
if (ieee80211_is_key_global(vap, k)) {
id = ieee80211_crypto_get_key_wepidx(vap, k);
- DPRINTF(("%s: adding group key\n", __func__));
+ IWX_DPRINTF(sc, IWX_DEBUG_KEYMGMT, "%s: adding group key\n",
+ __func__);
} else if (ieee80211_is_key_unicast(vap, k)) {
- DPRINTF(("%s: adding key\n", __func__));
+ IWX_DPRINTF(sc, IWX_DEBUG_KEYMGMT, "%s: adding key\n",
+ __func__);
id = 0; /* net80211 currently only supports unicast key 0 */
} else {
net80211_vap_printf(vap, "%s: unknown key type\n", __func__);
@@ -10991,7 +10993,6 @@ iwx_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k)
IWX_LOCK(sc);
- DPRINTF(("%s: setting keyid=%i\n", __func__, id));
cmd.common.key_flags = htole16(IWX_STA_KEY_FLG_CCM |
IWX_STA_KEY_FLG_WEP_KEY_MAP |
((id << IWX_STA_KEY_FLG_KEYID_POS) &
@@ -11008,14 +11009,14 @@ iwx_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k)
}
memcpy(cmd.common.key, k->wk_key, MIN(sizeof(cmd.common.key),
k->wk_keylen));
- DPRINTF(("%s: wk_keylen=%i\n", __func__, k->wk_keylen));
- for (int i=0; i<k->wk_keylen; i++) {
- DPRINTF(("%s: key[%d]=%x\n", __func__, i, k->wk_key[i]));
- }
+ IWX_DPRINTF(sc, IWX_DEBUG_KEYMGMT, "%s: key: id=%d, len=%i, key=%*D\n",
+ __func__, id, k->wk_keylen, k->wk_keylen,
+ (const unsigned char *) k->wk_key, "");
cmd.common.sta_id = IWX_STATION_ID;
cmd.transmit_seq_cnt = htole64(k->wk_keytsc);
- DPRINTF(("%s: k->wk_keytsc=%lu\n", __func__, k->wk_keytsc));
+ IWX_DPRINTF(sc, IWX_DEBUG_KEYMGMT, "%s: k->wk_keytsc=%lu\n", __func__,
+ k->wk_keytsc);
status = IWX_ADD_STA_SUCCESS;
err = iwx_send_cmd_pdu_status(sc, IWX_ADD_STA_KEY, sizeof(cmd), &cmd,
@@ -11023,19 +11024,28 @@ iwx_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k)
if (!err && (status & IWX_ADD_STA_STATUS_MASK) != IWX_ADD_STA_SUCCESS)
err = EIO;
if (err) {
- printf("%s: can't set wpa2 keys (error %d)\n", __func__, err);
+ net80211_vap_printf(vap,
+ "%s: can't set wpa2 keys (error %d)\n", __func__, err);
IWX_UNLOCK(sc);
return err;
} else
- DPRINTF(("%s: key added successfully\n", __func__));
+ IWX_DPRINTF(sc, IWX_DEBUG_KEYMGMT,
+ "%s: key added successfully\n", __func__);
IWX_UNLOCK(sc);
- return 1;
+ return (1);
}
static int
iwx_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k)
{
- return 1;
+ /*
+ * Note: since there's no key allocations to track - it's either
+ * the 4 static WEP keys or the single unicast key - there's nothing
+ * else to do here.
+ *
+ * This would need some further work to support IBSS/mesh/AP modes.
+ */
+ return (1);
}
static device_method_t iwx_pci_methods[] = {
diff --git a/sys/dev/iwx/if_iwx_debug.h b/sys/dev/iwx/if_iwx_debug.h
index 0079a7e7e753..ab8284a59e0f 100644
--- a/sys/dev/iwx/if_iwx_debug.h
+++ b/sys/dev/iwx/if_iwx_debug.h
@@ -37,7 +37,8 @@ enum {
IWX_DEBUG_FW = 0x00200000, /* Firmware management */
IWX_DEBUG_LAR = 0x00400000, /* Location Aware Regulatory */
IWX_DEBUG_TE = 0x00800000, /* Time Event handling */
- /* 0x0n000000 are available */
+ IWX_DEBUG_KEYMGMT = 0x01000000, /* Encryption key management */
+ /* 0x0e000000 are available */
IWX_DEBUG_NI = 0x10000000, /* Not Implemented */
IWX_DEBUG_REGISTER = 0x20000000, /* print chipset register */
IWX_DEBUG_TRACE = 0x40000000, /* Print begin and start driver function */