mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
mt76: connac: fix GTK rekey offload failure on WPA mixed mode
[ Upstream commit781f62960c] Update the proper firmware programming sequence to fix GTK rekey offload failure on WPA mixed mode. In the mt76_connac_mcu_key_iter, gtk_tlv->proto should be only set up on pairwise key and gtk_tlk->group_cipher should be only set up on the group key. Otherwise, those parameters required by firmware would be set incorrectly to cause GTK rekey offload failure on WPA mixed mode and then disconnection follows. Fixes:b47e21e75c("mt76: mt7615: add gtk rekey offload support") Co-developed-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Leon Yen <Leon.Yen@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c8c0958687
commit
30dc676d4b
@@ -1929,19 +1929,22 @@ mt76_connac_mcu_key_iter(struct ieee80211_hw *hw,
|
||||
key->cipher != WLAN_CIPHER_SUITE_TKIP)
|
||||
return;
|
||||
|
||||
if (key->cipher == WLAN_CIPHER_SUITE_TKIP) {
|
||||
gtk_tlv->proto = cpu_to_le32(NL80211_WPA_VERSION_1);
|
||||
if (key->cipher == WLAN_CIPHER_SUITE_TKIP)
|
||||
cipher = BIT(3);
|
||||
} else {
|
||||
gtk_tlv->proto = cpu_to_le32(NL80211_WPA_VERSION_2);
|
||||
else
|
||||
cipher = BIT(4);
|
||||
}
|
||||
|
||||
/* we are assuming here to have a single pairwise key */
|
||||
if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) {
|
||||
if (key->cipher == WLAN_CIPHER_SUITE_TKIP)
|
||||
gtk_tlv->proto = cpu_to_le32(NL80211_WPA_VERSION_1);
|
||||
else
|
||||
gtk_tlv->proto = cpu_to_le32(NL80211_WPA_VERSION_2);
|
||||
|
||||
gtk_tlv->pairwise_cipher = cpu_to_le32(cipher);
|
||||
gtk_tlv->group_cipher = cpu_to_le32(cipher);
|
||||
gtk_tlv->keyid = key->keyidx;
|
||||
} else {
|
||||
gtk_tlv->group_cipher = cpu_to_le32(cipher);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user