* [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
@ 2025-04-21 11:47 Karthikeyan Kathirvel
2025-04-21 17:16 ` kernel test robot
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Karthikeyan Kathirvel @ 2025-04-21 11:47 UTC (permalink / raw)
To: ath12k; +Cc: linux-wireless, Karthikeyan Kathirvel
Install beacon protection keys in hardware for AP modes only if hardware
supports it, as indicated by the WMI service bit
WMI_TLV_SERVICE_BEACON_PROTECTION_SUPPORT. Allow keyidx up to 7, since
beacon protection uses keyidx 6 and 7.
Control this feature by setting bit 0 of feature_enable_bitmap when sending
the WMI_BCN_TMPL_CMDID command to firmware.
Check for the beacon protection enabled bit in both tx and non-tx profiles
for MBSSID cases. If set in either profile, enable the beacon protection
feature in firmware for transmitted vif.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1
Signed-off-by: Karthikeyan Kathirvel <karthikeyan.kathirvel@oss.qualcomm.com>
---
drivers/net/wireless/ath/ath12k/core.h | 1 +
drivers/net/wireless/ath/ath12k/mac.c | 52 +++++++++++++++++++-------
drivers/net/wireless/ath/ath12k/wmi.c | 3 ++
drivers/net/wireless/ath/ath12k/wmi.h | 5 ++-
4 files changed, 46 insertions(+), 15 deletions(-)
diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
index 4b8f434e3e9a..48bcb6d95479 100644
--- a/drivers/net/wireless/ath/ath12k/core.h
+++ b/drivers/net/wireless/ath/ath12k/core.h
@@ -290,6 +290,7 @@ struct ath12k_link_vif {
int bank_id;
u8 vdev_id_check_en;
+ bool beacon_prot;
struct wmi_wmm_params_all_arg wmm_params;
struct list_head list;
diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
index d170bca72948..71236c4f36a6 100644
--- a/drivers/net/wireless/ath/ath12k/mac.c
+++ b/drivers/net/wireless/ath/ath12k/mac.c
@@ -1445,11 +1445,13 @@ static int ath12k_mac_remove_vendor_ie(struct sk_buff *skb, unsigned int oui,
return 0;
}
-static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif, struct sk_buff *bcn,
+static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif,
+ struct ath12k_link_vif *tx_arvif,
+ struct sk_buff *bcn,
u8 bssid_index, bool *nontx_profile_found)
{
struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)bcn->data;
- const struct element *elem, *nontx, *index, *nie;
+ const struct element *elem, *nontx, *index, *nie, *ext_cap_ie;
const u8 *start, *tail;
u16 rem_len;
u8 i;
@@ -1467,6 +1469,11 @@ static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif, struct sk_bu
start, rem_len))
arvif->wpaie_present = true;
+ ext_cap_ie = cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY, start, rem_len);
+ if (ext_cap_ie && ext_cap_ie->datalen >= 11 &&
+ (ext_cap_ie->data[10] & WLAN_EXT_CAPA11_BCN_PROTECT))
+ tx_arvif->beacon_prot = true;
+
/* Return from here for the transmitted profile */
if (!bssid_index)
return;
@@ -1509,6 +1516,19 @@ static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif, struct sk_bu
if (index->data[0] == bssid_index) {
*nontx_profile_found = true;
+
+ /* Check if nontx BSS has beacon protection enabled */
+ if (!tx_arvif->beacon_prot) {
+ ext_cap_ie =
+ cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY,
+ nontx->data,
+ nontx->datalen);
+ if (ext_cap_ie && ext_cap_ie->datalen >= 11 &&
+ (ext_cap_ie->data[10] &
+ WLAN_EXT_CAPA11_BCN_PROTECT))
+ tx_arvif->beacon_prot = true;
+ }
+
if (cfg80211_find_ie(WLAN_EID_RSN,
nontx->data,
nontx->datalen)) {
@@ -1557,11 +1577,11 @@ static int ath12k_mac_setup_bcn_tmpl_ema(struct ath12k_link_vif *arvif,
}
if (tx_arvif == arvif)
- ath12k_mac_set_arvif_ies(arvif, beacons->bcn[0].skb, 0, NULL);
+ ath12k_mac_set_arvif_ies(arvif, tx_arvif, beacons->bcn[0].skb, 0, NULL);
for (i = 0; i < beacons->cnt; i++) {
if (tx_arvif != arvif && !nontx_profile_found)
- ath12k_mac_set_arvif_ies(arvif, beacons->bcn[i].skb,
+ ath12k_mac_set_arvif_ies(arvif, tx_arvif, beacons->bcn[i].skb,
bssid_index,
&nontx_profile_found);
@@ -1630,9 +1650,9 @@ static int ath12k_mac_setup_bcn_tmpl(struct ath12k_link_vif *arvif)
}
if (tx_arvif == arvif) {
- ath12k_mac_set_arvif_ies(arvif, bcn, 0, NULL);
+ ath12k_mac_set_arvif_ies(arvif, tx_arvif, bcn, 0, NULL);
} else {
- ath12k_mac_set_arvif_ies(arvif, bcn,
+ ath12k_mac_set_arvif_ies(arvif, tx_arvif, bcn,
link_conf->bssid_index,
&nontx_profile_found);
if (!nontx_profile_found)
@@ -4733,6 +4753,16 @@ static int ath12k_install_key(struct ath12k_link_vif *arvif,
arg.key_cipher = WMI_CIPHER_AES_GCM;
key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV_MGMT;
break;
+ case WLAN_CIPHER_SUITE_AES_CMAC:
+ arg.key_cipher = WMI_CIPHER_AES_CMAC;
+ break;
+ case WLAN_CIPHER_SUITE_BIP_GMAC_128:
+ case WLAN_CIPHER_SUITE_BIP_GMAC_256:
+ arg.key_cipher = WMI_CIPHER_AES_GMAC;
+ break;
+ case WLAN_CIPHER_SUITE_BIP_CMAC_256:
+ arg.key_cipher = WMI_CIPHER_AES_CMAC;
+ break;
default:
ath12k_warn(ar->ab, "cipher %d is not supported\n", key->cipher);
return -EOPNOTSUPP;
@@ -4964,14 +4994,6 @@ static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
lockdep_assert_wiphy(hw->wiphy);
- /* BIP needs to be done in software */
- if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
- key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
- key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
- key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
- return 1;
- }
-
if (key->keyidx > WMI_MAX_KEY_INDEX)
return -ENOSPC;
@@ -11588,6 +11610,8 @@ static int ath12k_mac_hw_register(struct ath12k_hw *ah)
}
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_PUNCT);
+ if (test_bit(WMI_TLV_SERVICE_BEACON_PROTECTION_SUPPORT, ab->wmi_ab.svc_map))
+ wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_BEACON_PROTECTION);
ath12k_reg_init(hw);
diff --git a/drivers/net/wireless/ath/ath12k/wmi.c b/drivers/net/wireless/ath/ath12k/wmi.c
index ea303dca38b5..89ed207225e6 100644
--- a/drivers/net/wireless/ath/ath12k/wmi.c
+++ b/drivers/net/wireless/ath/ath12k/wmi.c
@@ -2008,6 +2008,9 @@ int ath12k_wmi_bcn_tmpl(struct ath12k_link_vif *arvif,
u32p_replace_bits(&ema_params, 1, WMI_EMA_BEACON_LAST);
cmd->ema_params = cpu_to_le32(ema_params);
}
+ cmd->feature_enable_bitmap =
+ cpu_to_le32(u32_encode_bits(arvif->beacon_prot,
+ WMI_BEACON_PROTECTION_EN_BIT));
ptr = skb->data + sizeof(*cmd);
diff --git a/drivers/net/wireless/ath/ath12k/wmi.h b/drivers/net/wireless/ath/ath12k/wmi.h
index 80fdbc566518..7c59fbf5ecff 100644
--- a/drivers/net/wireless/ath/ath12k/wmi.h
+++ b/drivers/net/wireless/ath/ath12k/wmi.h
@@ -2197,6 +2197,7 @@ enum wmi_tlv_service {
WMI_TLV_SERVICE_PER_PEER_HTT_STATS_RESET = 213,
WMI_TLV_SERVICE_FREQINFO_IN_METADATA = 219,
WMI_TLV_SERVICE_EXT2_MSG = 220,
+ WMI_TLV_SERVICE_BEACON_PROTECTION_SUPPORT = 244,
WMI_TLV_SERVICE_MBSS_PARAM_IN_VDEV_START_SUPPORT = 253,
WMI_MAX_EXT_SERVICE = 256,
@@ -3668,6 +3669,8 @@ struct ath12k_wmi_ftm_event {
#define WMI_EMA_BEACON_FIRST GENMASK(23, 16)
#define WMI_EMA_BEACON_LAST GENMASK(31, 24)
+#define WMI_BEACON_PROTECTION_EN_BIT BIT(0)
+
struct ath12k_wmi_bcn_tmpl_ema_arg {
u8 bcn_cnt;
u8 bcn_index;
@@ -4631,7 +4634,7 @@ enum wmi_ap_ps_peer_param {
#define DISABLE_SIFS_RESPONSE_TRIGGER 0
-#define WMI_MAX_KEY_INDEX 3
+#define WMI_MAX_KEY_INDEX 7
#define WMI_MAX_KEY_LEN 32
enum wmi_key_type {
base-commit: d33705bb41ff786b537f8ed50a187a474db111c1
Depends-on: <20250421111505.3633992-1-karthikeyan.kathirvel@oss.qualcomm.com>
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-04-21 11:47 [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware Karthikeyan Kathirvel
@ 2025-04-21 17:16 ` kernel test robot
2025-04-21 18:44 ` Jeff Johnson
2025-04-22 9:48 ` kernel test robot
2025-04-29 15:47 ` Nicolas Escande
2 siblings, 1 reply; 12+ messages in thread
From: kernel test robot @ 2025-04-21 17:16 UTC (permalink / raw)
To: Karthikeyan Kathirvel, ath12k
Cc: llvm, oe-kbuild-all, linux-wireless, Karthikeyan Kathirvel
Hi Karthikeyan,
kernel test robot noticed the following build errors:
[auto build test ERROR on d33705bb41ff786b537f8ed50a187a474db111c1]
url: https://github.com/intel-lab-lkp/linux/commits/Karthikeyan-Kathirvel/wifi-ath12k-allow-beacon-protection-keys-to-be-installed-in-hardware/20250421-194813
base: d33705bb41ff786b537f8ed50a187a474db111c1
patch link: https://lore.kernel.org/r/20250421114711.3660911-1-karthikeyan.kathirvel%40oss.qualcomm.com
patch subject: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
config: powerpc-randconfig-003-20250421 (https://download.01.org/0day-ci/archive/20250422/202504220128.2KvxCzaG-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250422/202504220128.2KvxCzaG-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504220128.2KvxCzaG-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/net/wireless/ath/ath12k/mac.c:1474:30: error: use of undeclared identifier 'WLAN_EXT_CAPA11_BCN_PROTECT'
1474 | (ext_cap_ie->data[10] & WLAN_EXT_CAPA11_BCN_PROTECT))
| ^
drivers/net/wireless/ath/ath12k/mac.c:1528:11: error: use of undeclared identifier 'WLAN_EXT_CAPA11_BCN_PROTECT'
1528 | WLAN_EXT_CAPA11_BCN_PROTECT))
| ^
2 errors generated.
vim +/WLAN_EXT_CAPA11_BCN_PROTECT +1474 drivers/net/wireless/ath/ath12k/mac.c
1447
1448 static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif,
1449 struct ath12k_link_vif *tx_arvif,
1450 struct sk_buff *bcn,
1451 u8 bssid_index, bool *nontx_profile_found)
1452 {
1453 struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)bcn->data;
1454 const struct element *elem, *nontx, *index, *nie, *ext_cap_ie;
1455 const u8 *start, *tail;
1456 u16 rem_len;
1457 u8 i;
1458
1459 start = bcn->data + ieee80211_get_hdrlen_from_skb(bcn) + sizeof(mgmt->u.beacon);
1460 tail = skb_tail_pointer(bcn);
1461 rem_len = tail - start;
1462
1463 arvif->rsnie_present = false;
1464 arvif->wpaie_present = false;
1465
1466 if (cfg80211_find_ie(WLAN_EID_RSN, start, rem_len))
1467 arvif->rsnie_present = true;
1468 if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT, WLAN_OUI_TYPE_MICROSOFT_WPA,
1469 start, rem_len))
1470 arvif->wpaie_present = true;
1471
1472 ext_cap_ie = cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY, start, rem_len);
1473 if (ext_cap_ie && ext_cap_ie->datalen >= 11 &&
> 1474 (ext_cap_ie->data[10] & WLAN_EXT_CAPA11_BCN_PROTECT))
1475 tx_arvif->beacon_prot = true;
1476
1477 /* Return from here for the transmitted profile */
1478 if (!bssid_index)
1479 return;
1480
1481 /* Initial rsnie_present for the nontransmitted profile is set to be same as that
1482 * of the transmitted profile. It will be changed if security configurations are
1483 * different.
1484 */
1485 *nontx_profile_found = false;
1486 for_each_element_id(elem, WLAN_EID_MULTIPLE_BSSID, start, rem_len) {
1487 /* Fixed minimum MBSSID element length with at least one
1488 * nontransmitted BSSID profile is 12 bytes as given below;
1489 * 1 (max BSSID indicator) +
1490 * 2 (Nontransmitted BSSID profile: Subelement ID + length) +
1491 * 4 (Nontransmitted BSSID Capabilities: tag + length + info)
1492 * 2 (Nontransmitted BSSID SSID: tag + length)
1493 * 3 (Nontransmitted BSSID Index: tag + length + BSSID index
1494 */
1495 if (elem->datalen < 12 || elem->data[0] < 1)
1496 continue; /* Max BSSID indicator must be >=1 */
1497
1498 for_each_element(nontx, elem->data + 1, elem->datalen - 1) {
1499 start = nontx->data;
1500
1501 if (nontx->id != 0 || nontx->datalen < 4)
1502 continue; /* Invalid nontransmitted profile */
1503
1504 if (nontx->data[0] != WLAN_EID_NON_TX_BSSID_CAP ||
1505 nontx->data[1] != 2) {
1506 continue; /* Missing nontransmitted BSS capabilities */
1507 }
1508
1509 if (nontx->data[4] != WLAN_EID_SSID)
1510 continue; /* Missing SSID for nontransmitted BSS */
1511
1512 index = cfg80211_find_elem(WLAN_EID_MULTI_BSSID_IDX,
1513 start, nontx->datalen);
1514 if (!index || index->datalen < 1 || index->data[0] == 0)
1515 continue; /* Invalid MBSSID Index element */
1516
1517 if (index->data[0] == bssid_index) {
1518 *nontx_profile_found = true;
1519
1520 /* Check if nontx BSS has beacon protection enabled */
1521 if (!tx_arvif->beacon_prot) {
1522 ext_cap_ie =
1523 cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY,
1524 nontx->data,
1525 nontx->datalen);
1526 if (ext_cap_ie && ext_cap_ie->datalen >= 11 &&
1527 (ext_cap_ie->data[10] &
1528 WLAN_EXT_CAPA11_BCN_PROTECT))
1529 tx_arvif->beacon_prot = true;
1530 }
1531
1532 if (cfg80211_find_ie(WLAN_EID_RSN,
1533 nontx->data,
1534 nontx->datalen)) {
1535 arvif->rsnie_present = true;
1536 return;
1537 } else if (!arvif->rsnie_present) {
1538 return; /* Both tx and nontx BSS are open */
1539 }
1540
1541 nie = cfg80211_find_ext_elem(WLAN_EID_EXT_NON_INHERITANCE,
1542 nontx->data,
1543 nontx->datalen);
1544 if (!nie || nie->datalen < 2)
1545 return; /* Invalid non-inheritance element */
1546
1547 for (i = 1; i < nie->datalen - 1; i++) {
1548 if (nie->data[i] == WLAN_EID_RSN) {
1549 arvif->rsnie_present = false;
1550 break;
1551 }
1552 }
1553
1554 return;
1555 }
1556 }
1557 }
1558 }
1559
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-04-21 17:16 ` kernel test robot
@ 2025-04-21 18:44 ` Jeff Johnson
2025-04-23 1:37 ` Philip Li
0 siblings, 1 reply; 12+ messages in thread
From: Jeff Johnson @ 2025-04-21 18:44 UTC (permalink / raw)
To: kernel test robot, Karthikeyan Kathirvel, ath12k
Cc: llvm, oe-kbuild-all, linux-wireless
On 4/21/2025 10:16 AM, kernel test robot wrote:
> Hi Karthikeyan,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on d33705bb41ff786b537f8ed50a187a474db111c1]
lkp@intel.com folks:
This patch contains the following footer:
base-commit: d33705bb41ff786b537f8ed50a187a474db111c1
Depends-on: <20250421111505.3633992-1-karthikeyan.kathirvel@oss.qualcomm.com>
Is there a different mechanism needed to tell the robot about the dependency?
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-04-21 11:47 [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware Karthikeyan Kathirvel
2025-04-21 17:16 ` kernel test robot
@ 2025-04-22 9:48 ` kernel test robot
2025-04-29 15:47 ` Nicolas Escande
2 siblings, 0 replies; 12+ messages in thread
From: kernel test robot @ 2025-04-22 9:48 UTC (permalink / raw)
To: Karthikeyan Kathirvel, ath12k
Cc: oe-kbuild-all, linux-wireless, Karthikeyan Kathirvel
Hi Karthikeyan,
kernel test robot noticed the following build errors:
[auto build test ERROR on d33705bb41ff786b537f8ed50a187a474db111c1]
url: https://github.com/intel-lab-lkp/linux/commits/Karthikeyan-Kathirvel/wifi-ath12k-allow-beacon-protection-keys-to-be-installed-in-hardware/20250421-194813
base: d33705bb41ff786b537f8ed50a187a474db111c1
patch link: https://lore.kernel.org/r/20250421114711.3660911-1-karthikeyan.kathirvel%40oss.qualcomm.com
patch subject: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
config: sparc-allmodconfig (https://download.01.org/0day-ci/archive/20250422/202504221714.6bYFTiB1-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250422/202504221714.6bYFTiB1-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504221714.6bYFTiB1-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/net/wireless/ath/ath12k/mac.c: In function 'ath12k_mac_set_arvif_ies':
>> drivers/net/wireless/ath/ath12k/mac.c:1474:37: error: 'WLAN_EXT_CAPA11_BCN_PROTECT' undeclared (first use in this function); did you mean 'WLAN_EXT_CAPA11_EMA_SUPPORT'?
1474 | (ext_cap_ie->data[10] & WLAN_EXT_CAPA11_BCN_PROTECT))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| WLAN_EXT_CAPA11_EMA_SUPPORT
drivers/net/wireless/ath/ath12k/mac.c:1474:37: note: each undeclared identifier is reported only once for each function it appears in
vim +1474 drivers/net/wireless/ath/ath12k/mac.c
1447
1448 static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif,
1449 struct ath12k_link_vif *tx_arvif,
1450 struct sk_buff *bcn,
1451 u8 bssid_index, bool *nontx_profile_found)
1452 {
1453 struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)bcn->data;
1454 const struct element *elem, *nontx, *index, *nie, *ext_cap_ie;
1455 const u8 *start, *tail;
1456 u16 rem_len;
1457 u8 i;
1458
1459 start = bcn->data + ieee80211_get_hdrlen_from_skb(bcn) + sizeof(mgmt->u.beacon);
1460 tail = skb_tail_pointer(bcn);
1461 rem_len = tail - start;
1462
1463 arvif->rsnie_present = false;
1464 arvif->wpaie_present = false;
1465
1466 if (cfg80211_find_ie(WLAN_EID_RSN, start, rem_len))
1467 arvif->rsnie_present = true;
1468 if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT, WLAN_OUI_TYPE_MICROSOFT_WPA,
1469 start, rem_len))
1470 arvif->wpaie_present = true;
1471
1472 ext_cap_ie = cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY, start, rem_len);
1473 if (ext_cap_ie && ext_cap_ie->datalen >= 11 &&
> 1474 (ext_cap_ie->data[10] & WLAN_EXT_CAPA11_BCN_PROTECT))
1475 tx_arvif->beacon_prot = true;
1476
1477 /* Return from here for the transmitted profile */
1478 if (!bssid_index)
1479 return;
1480
1481 /* Initial rsnie_present for the nontransmitted profile is set to be same as that
1482 * of the transmitted profile. It will be changed if security configurations are
1483 * different.
1484 */
1485 *nontx_profile_found = false;
1486 for_each_element_id(elem, WLAN_EID_MULTIPLE_BSSID, start, rem_len) {
1487 /* Fixed minimum MBSSID element length with at least one
1488 * nontransmitted BSSID profile is 12 bytes as given below;
1489 * 1 (max BSSID indicator) +
1490 * 2 (Nontransmitted BSSID profile: Subelement ID + length) +
1491 * 4 (Nontransmitted BSSID Capabilities: tag + length + info)
1492 * 2 (Nontransmitted BSSID SSID: tag + length)
1493 * 3 (Nontransmitted BSSID Index: tag + length + BSSID index
1494 */
1495 if (elem->datalen < 12 || elem->data[0] < 1)
1496 continue; /* Max BSSID indicator must be >=1 */
1497
1498 for_each_element(nontx, elem->data + 1, elem->datalen - 1) {
1499 start = nontx->data;
1500
1501 if (nontx->id != 0 || nontx->datalen < 4)
1502 continue; /* Invalid nontransmitted profile */
1503
1504 if (nontx->data[0] != WLAN_EID_NON_TX_BSSID_CAP ||
1505 nontx->data[1] != 2) {
1506 continue; /* Missing nontransmitted BSS capabilities */
1507 }
1508
1509 if (nontx->data[4] != WLAN_EID_SSID)
1510 continue; /* Missing SSID for nontransmitted BSS */
1511
1512 index = cfg80211_find_elem(WLAN_EID_MULTI_BSSID_IDX,
1513 start, nontx->datalen);
1514 if (!index || index->datalen < 1 || index->data[0] == 0)
1515 continue; /* Invalid MBSSID Index element */
1516
1517 if (index->data[0] == bssid_index) {
1518 *nontx_profile_found = true;
1519
1520 /* Check if nontx BSS has beacon protection enabled */
1521 if (!tx_arvif->beacon_prot) {
1522 ext_cap_ie =
1523 cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY,
1524 nontx->data,
1525 nontx->datalen);
1526 if (ext_cap_ie && ext_cap_ie->datalen >= 11 &&
1527 (ext_cap_ie->data[10] &
1528 WLAN_EXT_CAPA11_BCN_PROTECT))
1529 tx_arvif->beacon_prot = true;
1530 }
1531
1532 if (cfg80211_find_ie(WLAN_EID_RSN,
1533 nontx->data,
1534 nontx->datalen)) {
1535 arvif->rsnie_present = true;
1536 return;
1537 } else if (!arvif->rsnie_present) {
1538 return; /* Both tx and nontx BSS are open */
1539 }
1540
1541 nie = cfg80211_find_ext_elem(WLAN_EID_EXT_NON_INHERITANCE,
1542 nontx->data,
1543 nontx->datalen);
1544 if (!nie || nie->datalen < 2)
1545 return; /* Invalid non-inheritance element */
1546
1547 for (i = 1; i < nie->datalen - 1; i++) {
1548 if (nie->data[i] == WLAN_EID_RSN) {
1549 arvif->rsnie_present = false;
1550 break;
1551 }
1552 }
1553
1554 return;
1555 }
1556 }
1557 }
1558 }
1559
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-04-21 18:44 ` Jeff Johnson
@ 2025-04-23 1:37 ` Philip Li
2025-04-23 18:05 ` Jeff Johnson
0 siblings, 1 reply; 12+ messages in thread
From: Philip Li @ 2025-04-23 1:37 UTC (permalink / raw)
To: Jeff Johnson
Cc: kernel test robot, Karthikeyan Kathirvel, ath12k, llvm,
oe-kbuild-all, linux-wireless
On Mon, Apr 21, 2025 at 11:44:46AM -0700, Jeff Johnson wrote:
> On 4/21/2025 10:16 AM, kernel test robot wrote:
> > Hi Karthikeyan,
> >
> > kernel test robot noticed the following build errors:
> >
> > [auto build test ERROR on d33705bb41ff786b537f8ed50a187a474db111c1]
>
> lkp@intel.com folks:
> This patch contains the following footer:
>
> base-commit: d33705bb41ff786b537f8ed50a187a474db111c1
> Depends-on: <20250421111505.3633992-1-karthikeyan.kathirvel@oss.qualcomm.com>
>
> Is there a different mechanism needed to tell the robot about the dependency?
Sorry for confusion, for now if there's base-commit specified, the bot would
only consider it as the base and apply the patch. And actually, if there's
a dependency specified by link, the bot so far can't recognize it well.
BTW: for this case, does it mean the patch need be applied on this "Depends-on"
patch, and this "Depends-on" patch is on top of the base-commit?
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-04-23 1:37 ` Philip Li
@ 2025-04-23 18:05 ` Jeff Johnson
0 siblings, 0 replies; 12+ messages in thread
From: Jeff Johnson @ 2025-04-23 18:05 UTC (permalink / raw)
To: Philip Li
Cc: kernel test robot, Karthikeyan Kathirvel, ath12k, llvm,
oe-kbuild-all, linux-wireless
On 4/22/2025 6:37 PM, Philip Li wrote:
> On Mon, Apr 21, 2025 at 11:44:46AM -0700, Jeff Johnson wrote:
>> On 4/21/2025 10:16 AM, kernel test robot wrote:
>>> Hi Karthikeyan,
>>>
>>> kernel test robot noticed the following build errors:
>>>
>>> [auto build test ERROR on d33705bb41ff786b537f8ed50a187a474db111c1]
>>
>> lkp@intel.com folks:
>> This patch contains the following footer:
>>
>> base-commit: d33705bb41ff786b537f8ed50a187a474db111c1
>> Depends-on: <20250421111505.3633992-1-karthikeyan.kathirvel@oss.qualcomm.com>
>>
>> Is there a different mechanism needed to tell the robot about the dependency?
>
> Sorry for confusion, for now if there's base-commit specified, the bot would
> only consider it as the base and apply the patch. And actually, if there's
> a dependency specified by link, the bot so far can't recognize it well.
>
> BTW: for this case, does it mean the patch need be applied on this "Depends-on"
> patch, and this "Depends-on" patch is on top of the base-commit?
In this case the Depends-on patch is applied on top of the base patch, and
then the actual patch is applied on top of that.
/jeff
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-04-21 11:47 [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware Karthikeyan Kathirvel
2025-04-21 17:16 ` kernel test robot
2025-04-22 9:48 ` kernel test robot
@ 2025-04-29 15:47 ` Nicolas Escande
2025-04-30 6:05 ` Karthikeyan Kathirvel
2 siblings, 1 reply; 12+ messages in thread
From: Nicolas Escande @ 2025-04-29 15:47 UTC (permalink / raw)
To: Karthikeyan Kathirvel, ath12k; +Cc: linux-wireless
On Mon Apr 21, 2025 at 1:47 PM CEST, Karthikeyan Kathirvel wrote:
> Install beacon protection keys in hardware for AP modes only if hardware
> supports it, as indicated by the WMI service bit
> WMI_TLV_SERVICE_BEACON_PROTECTION_SUPPORT. Allow keyidx up to 7, since
> beacon protection uses keyidx 6 and 7.
>
> Control this feature by setting bit 0 of feature_enable_bitmap when sending
> the WMI_BCN_TMPL_CMDID command to firmware.
>
> Check for the beacon protection enabled bit in both tx and non-tx profiles
> for MBSSID cases. If set in either profile, enable the beacon protection
> feature in firmware for transmitted vif.
>
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1
>
> Signed-off-by: Karthikeyan Kathirvel <karthikeyan.kathirvel@oss.qualcomm.com>
[...]
> @@ -4964,14 +4994,6 @@ static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>
> lockdep_assert_wiphy(hw->wiphy);
>
> - /* BIP needs to be done in software */
> - if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
> - key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
> - return 1;
> - }
> -
> if (key->keyidx > WMI_MAX_KEY_INDEX)
> return -ENOSPC;
>
This hunk seems to break station mode on QCN9274. Maybe on WCN7850 too ? I see
that it was not tested against that HW.
With that hunk I cannot receive broadcast trafic sent by the ap anymore.
Generated by a simple "arping -b X.X.X.X -I br0" in my case.
Replacing that hunk with something similar as what is done in CLO [0] seems to
fix the issue:
@@ -5575,13 +5605,9 @@ static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
lockdep_assert_wiphy(hw->wiphy);
- /* BIP needs to be done in software */
- if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
- key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
- key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
- key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
+ /* IGTK needs to be done in host software */
+ if (key->keyidx == 4 || key->keyidx == 5)
return 1;
- }
if (key->keyidx > WMI_MAX_KEY_INDEX)
return -ENOSPC;
PS: I tested that with firmware PCI WLAN.WBE.1.3.1-00218-QCAHKSWPL_SILICONZ-1
[0] https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open/-/blob/win.wlan_host_opensource.3.0/patches/ath12k/726-ath12k-add-beacon-protection-support-for-ath12k.patch?ref_type=heads
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-04-29 15:47 ` Nicolas Escande
@ 2025-04-30 6:05 ` Karthikeyan Kathirvel
2025-05-09 16:07 ` Jeff Johnson
0 siblings, 1 reply; 12+ messages in thread
From: Karthikeyan Kathirvel @ 2025-04-30 6:05 UTC (permalink / raw)
To: Nicolas Escande, ath12k; +Cc: linux-wireless
On 4/29/2025 9:17 PM, Nicolas Escande wrote:
> On Mon Apr 21, 2025 at 1:47 PM CEST, Karthikeyan Kathirvel wrote:
>> Install beacon protection keys in hardware for AP modes only if hardware
>> supports it, as indicated by the WMI service bit
>> WMI_TLV_SERVICE_BEACON_PROTECTION_SUPPORT. Allow keyidx up to 7, since
>> beacon protection uses keyidx 6 and 7.
>>
>> Control this feature by setting bit 0 of feature_enable_bitmap when sending
>> the WMI_BCN_TMPL_CMDID command to firmware.
>>
>> Check for the beacon protection enabled bit in both tx and non-tx profiles
>> for MBSSID cases. If set in either profile, enable the beacon protection
>> feature in firmware for transmitted vif.
>>
>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1
>>
>> Signed-off-by: Karthikeyan Kathirvel <karthikeyan.kathirvel@oss.qualcomm.com>
> [...]
>> @@ -4964,14 +4994,6 @@ static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>>
>> lockdep_assert_wiphy(hw->wiphy);
>>
>> - /* BIP needs to be done in software */
>> - if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
>> - key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
>> - return 1;
>> - }
>> -
>> if (key->keyidx > WMI_MAX_KEY_INDEX)
>> return -ENOSPC;
>>
> This hunk seems to break station mode on QCN9274. Maybe on WCN7850 too ? I see
> that it was not tested against that HW.
>
> With that hunk I cannot receive broadcast trafic sent by the ap anymore.
> Generated by a simple "arping -b X.X.X.X -I br0" in my case.
>
> Replacing that hunk with something similar as what is done in CLO [0] seems to
> fix the issue:
>
> @@ -5575,13 +5605,9 @@ static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>
> lockdep_assert_wiphy(hw->wiphy);
>
> - /* BIP needs to be done in software */
> - if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
> - key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
> + /* IGTK needs to be done in host software */
> + if (key->keyidx == 4 || key->keyidx == 5)
> return 1;
> - }
>
> if (key->keyidx > WMI_MAX_KEY_INDEX)
> return -ENOSPC;
>
>
> PS: I tested that with firmware PCI WLAN.WBE.1.3.1-00218-QCAHKSWPL_SILICONZ-1
>
> [0] https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open/-/blob/win.wlan_host_opensource.3.0/patches/ath12k/726-ath12k-add-beacon-protection-support-for-ath12k.patch?ref_type=heads
Thanks for catching this Nicolas, will check and get back on this
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-04-30 6:05 ` Karthikeyan Kathirvel
@ 2025-05-09 16:07 ` Jeff Johnson
2025-06-04 8:59 ` Karthikeyan Kathirvel
0 siblings, 1 reply; 12+ messages in thread
From: Jeff Johnson @ 2025-05-09 16:07 UTC (permalink / raw)
To: Karthikeyan Kathirvel, Nicolas Escande, ath12k; +Cc: linux-wireless
On 4/29/2025 11:05 PM, Karthikeyan Kathirvel wrote:
>
> On 4/29/2025 9:17 PM, Nicolas Escande wrote:
>> On Mon Apr 21, 2025 at 1:47 PM CEST, Karthikeyan Kathirvel wrote:
>>> Install beacon protection keys in hardware for AP modes only if hardware
>>> supports it, as indicated by the WMI service bit
>>> WMI_TLV_SERVICE_BEACON_PROTECTION_SUPPORT. Allow keyidx up to 7, since
>>> beacon protection uses keyidx 6 and 7.
>>>
>>> Control this feature by setting bit 0 of feature_enable_bitmap when sending
>>> the WMI_BCN_TMPL_CMDID command to firmware.
>>>
>>> Check for the beacon protection enabled bit in both tx and non-tx profiles
>>> for MBSSID cases. If set in either profile, enable the beacon protection
>>> feature in firmware for transmitted vif.
>>>
>>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1
>>>
>>> Signed-off-by: Karthikeyan Kathirvel <karthikeyan.kathirvel@oss.qualcomm.com>
>> [...]
>>> @@ -4964,14 +4994,6 @@ static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>>>
>>> lockdep_assert_wiphy(hw->wiphy);
>>>
>>> - /* BIP needs to be done in software */
>>> - if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
>>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
>>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
>>> - key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
>>> - return 1;
>>> - }
>>> -
>>> if (key->keyidx > WMI_MAX_KEY_INDEX)
>>> return -ENOSPC;
>>>
>> This hunk seems to break station mode on QCN9274. Maybe on WCN7850 too ? I see
>> that it was not tested against that HW.
>>
>> With that hunk I cannot receive broadcast trafic sent by the ap anymore.
>> Generated by a simple "arping -b X.X.X.X -I br0" in my case.
>>
>> Replacing that hunk with something similar as what is done in CLO [0] seems to
>> fix the issue:
>>
>> @@ -5575,13 +5605,9 @@ static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>>
>> lockdep_assert_wiphy(hw->wiphy);
>>
>> - /* BIP needs to be done in software */
>> - if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
>> - key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
>> + /* IGTK needs to be done in host software */
>> + if (key->keyidx == 4 || key->keyidx == 5)
>> return 1;
>> - }
>>
>> if (key->keyidx > WMI_MAX_KEY_INDEX)
>> return -ENOSPC;
>>
>>
>> PS: I tested that with firmware PCI WLAN.WBE.1.3.1-00218-QCAHKSWPL_SILICONZ-1
>>
>> [0] https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open/-/blob/win.wlan_host_opensource.3.0/patches/ath12k/726-ath12k-add-beacon-protection-support-for-ath12k.patch?ref_type=heads
>
> Thanks for catching this Nicolas, will check and get back on this
Will you be spinning a v2? Note the dependent mac80211 change has merged.
Also there is an indentation issue in the blob:
> -static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif, struct sk_buff *bcn,
> +static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif,
> + struct ath12k_link_vif *tx_arvif,
> + struct sk_buff *bcn,
> u8 bssid_index, bool *nontx_profile_found)
struct sk_buff *bcn is not aligned on the (
/jeff
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-05-09 16:07 ` Jeff Johnson
@ 2025-06-04 8:59 ` Karthikeyan Kathirvel
2025-06-04 20:38 ` Jeff Johnson
0 siblings, 1 reply; 12+ messages in thread
From: Karthikeyan Kathirvel @ 2025-06-04 8:59 UTC (permalink / raw)
To: Jeff Johnson, Nicolas Escande, ath12k; +Cc: linux-wireless
On 5/9/2025 9:37 PM, Jeff Johnson wrote:
> On 4/29/2025 11:05 PM, Karthikeyan Kathirvel wrote:
>>
>> On 4/29/2025 9:17 PM, Nicolas Escande wrote:
>>> On Mon Apr 21, 2025 at 1:47 PM CEST, Karthikeyan Kathirvel wrote:
>>>> Install beacon protection keys in hardware for AP modes only if hardware
>>>> supports it, as indicated by the WMI service bit
>>>> WMI_TLV_SERVICE_BEACON_PROTECTION_SUPPORT. Allow keyidx up to 7, since
>>>> beacon protection uses keyidx 6 and 7.
>>>>
>>>> Control this feature by setting bit 0 of feature_enable_bitmap when sending
>>>> the WMI_BCN_TMPL_CMDID command to firmware.
>>>>
>>>> Check for the beacon protection enabled bit in both tx and non-tx profiles
>>>> for MBSSID cases. If set in either profile, enable the beacon protection
>>>> feature in firmware for transmitted vif.
>>>>
>>>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1
>>>>
>>>> Signed-off-by: Karthikeyan Kathirvel <karthikeyan.kathirvel@oss.qualcomm.com>
>>> [...]
>>>> @@ -4964,14 +4994,6 @@ static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>>>>
>>>> lockdep_assert_wiphy(hw->wiphy);
>>>>
>>>> - /* BIP needs to be done in software */
>>>> - if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
>>>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
>>>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
>>>> - key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
>>>> - return 1;
>>>> - }
>>>> -
>>>> if (key->keyidx > WMI_MAX_KEY_INDEX)
>>>> return -ENOSPC;
>>>>
>>> This hunk seems to break station mode on QCN9274. Maybe on WCN7850 too ? I see
>>> that it was not tested against that HW.
>>>
>>> With that hunk I cannot receive broadcast trafic sent by the ap anymore.
>>> Generated by a simple "arping -b X.X.X.X -I br0" in my case.
>>>
>>> Replacing that hunk with something similar as what is done in CLO [0] seems to
>>> fix the issue:
>>>
>>> @@ -5575,13 +5605,9 @@ static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
>>>
>>> lockdep_assert_wiphy(hw->wiphy);
>>>
>>> - /* BIP needs to be done in software */
>>> - if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
>>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
>>> - key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
>>> - key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
>>> + /* IGTK needs to be done in host software */
>>> + if (key->keyidx == 4 || key->keyidx == 5)
>>> return 1;
>>> - }
>>>
>>> if (key->keyidx > WMI_MAX_KEY_INDEX)
>>> return -ENOSPC;
>>>
>>>
>>> PS: I tested that with firmware PCI WLAN.WBE.1.3.1-00218-QCAHKSWPL_SILICONZ-1
>>>
>>> [0] https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open/-/blob/win.wlan_host_opensource.3.0/patches/ath12k/726-ath12k-add-beacon-protection-support-for-ath12k.patch?ref_type=heads
>>
>> Thanks for catching this Nicolas, will check and get back on this
>
> Will you be spinning a v2? Note the dependent mac80211 change has merged.
Yes Jeff, we've identified and confirmed a firmware bug that gets
triggered during IGTK key installation, which leads to corruption of the
GTK keys in firmware. To work around this, I’ll send a new version where
IGTK uses software crypto. Once the firmware bug is resolved upstream,
we can re-enable hardware offload for IGTK.
>
> Also there is an indentation issue in the blob:
Will address this in next version
>> -static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif, struct sk_buff *bcn,
>> +static void ath12k_mac_set_arvif_ies(struct ath12k_link_vif *arvif,
>> + struct ath12k_link_vif *tx_arvif,
>> + struct sk_buff *bcn,
>> u8 bssid_index, bool *nontx_profile_found)
>
> struct sk_buff *bcn is not aligned on the (
>
> /jeff
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-06-04 8:59 ` Karthikeyan Kathirvel
@ 2025-06-04 20:38 ` Jeff Johnson
2025-06-06 13:22 ` Karthikeyan Kathirvel
0 siblings, 1 reply; 12+ messages in thread
From: Jeff Johnson @ 2025-06-04 20:38 UTC (permalink / raw)
To: Karthikeyan Kathirvel, Nicolas Escande, ath12k; +Cc: linux-wireless
On 6/4/2025 1:59 AM, Karthikeyan Kathirvel wrote:
> On 5/9/2025 9:37 PM, Jeff Johnson wrote:
>> Will you be spinning a v2? Note the dependent mac80211 change has merged.
> Yes Jeff, we've identified and confirmed a firmware bug that gets
> triggered during IGTK key installation, which leads to corruption of the
> GTK keys in firmware. To work around this, I’ll send a new version where
> IGTK uses software crypto. Once the firmware bug is resolved upstream,
> we can re-enable hardware offload for IGTK.
Note that then means firmware must advertise that the correct support is
present so that the host knows whether or not it can enable the offload.
/jeff
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware
2025-06-04 20:38 ` Jeff Johnson
@ 2025-06-06 13:22 ` Karthikeyan Kathirvel
0 siblings, 0 replies; 12+ messages in thread
From: Karthikeyan Kathirvel @ 2025-06-06 13:22 UTC (permalink / raw)
To: Jeff Johnson, Nicolas Escande, ath12k; +Cc: linux-wireless
On 6/5/2025 2:08 AM, Jeff Johnson wrote:
> On 6/4/2025 1:59 AM, Karthikeyan Kathirvel wrote:
>> On 5/9/2025 9:37 PM, Jeff Johnson wrote:
>>> Will you be spinning a v2? Note the dependent mac80211 change has merged.
>> Yes Jeff, we've identified and confirmed a firmware bug that gets
>> triggered during IGTK key installation, which leads to corruption of the
>> GTK keys in firmware. To work around this, I’ll send a new version where
>> IGTK uses software crypto. Once the firmware bug is resolved upstream,
>> we can re-enable hardware offload for IGTK.
>
> Note that then means firmware must advertise that the correct support is
> present so that the host knows whether or not it can enable the offload.
>
> /jeff
Noted.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-06-06 13:22 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-21 11:47 [PATCH ath-next] wifi: ath12k: allow beacon protection keys to be installed in hardware Karthikeyan Kathirvel
2025-04-21 17:16 ` kernel test robot
2025-04-21 18:44 ` Jeff Johnson
2025-04-23 1:37 ` Philip Li
2025-04-23 18:05 ` Jeff Johnson
2025-04-22 9:48 ` kernel test robot
2025-04-29 15:47 ` Nicolas Escande
2025-04-30 6:05 ` Karthikeyan Kathirvel
2025-05-09 16:07 ` Jeff Johnson
2025-06-04 8:59 ` Karthikeyan Kathirvel
2025-06-04 20:38 ` Jeff Johnson
2025-06-06 13:22 ` Karthikeyan Kathirvel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox