2020-12-18 21:58:10 +00:00
|
|
|
From: Felix Fietkau <nbd@nbd.name>
|
|
|
|
Date: Fri, 18 Dec 2020 20:08:06 +0100
|
|
|
|
Subject: [PATCH] mac80211: do not drop tx nulldata packets on encrypted links
|
|
|
|
|
|
|
|
ieee80211_tx_h_select_key drops any non-mgmt packets without a key when
|
|
|
|
encryption is used. This is wrong for nulldata packets that can't be
|
|
|
|
encrypted and are sent out for probing clients and indicating 4-address
|
|
|
|
mode.
|
|
|
|
|
|
|
|
Reported-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
|
|
|
|
Fixes: a0761a301746 ("mac80211: drop data frames without key on encrypted links")
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
|
|
---
|
|
|
|
|
|
|
|
--- a/net/mac80211/tx.c
|
|
|
|
+++ b/net/mac80211/tx.c
|
2020-11-07 16:50:20 +00:00
|
|
|
@@ -658,7 +658,7 @@ ieee80211_tx_h_select_key(struct ieee802
|
2020-12-18 21:58:10 +00:00
|
|
|
if (!skip_hw && tx->key &&
|
|
|
|
tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)
|
|
|
|
info->control.hw_key = &tx->key->conf;
|
|
|
|
- } else if (!ieee80211_is_mgmt(hdr->frame_control) && tx->sta &&
|
|
|
|
+ } else if (ieee80211_is_data_present(hdr->frame_control) && tx->sta &&
|
|
|
|
test_sta_flag(tx->sta, WLAN_STA_USES_ENCRYPTION)) {
|
|
|
|
return TX_DROP;
|
|
|
|
}
|