diff options
-rw-r--r-- | net/mac80211/tx.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index ad53ea9e9c77..7b013fb0d27f 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -432,7 +432,10 @@ ieee80211_tx_h_select_key(struct ieee80211_tx_data *tx) | |||
432 | tx->key = key; | 432 | tx->key = key; |
433 | else if (tx->sdata->drop_unencrypted && | 433 | else if (tx->sdata->drop_unencrypted && |
434 | (tx->skb->protocol != cpu_to_be16(ETH_P_PAE)) && | 434 | (tx->skb->protocol != cpu_to_be16(ETH_P_PAE)) && |
435 | !(info->flags & IEEE80211_TX_CTL_INJECTED)) { | 435 | !(info->flags & IEEE80211_TX_CTL_INJECTED) && |
436 | (!ieee80211_is_robust_mgmt_frame(hdr) || | ||
437 | (ieee80211_is_action(hdr->frame_control) && | ||
438 | tx->sta && test_sta_flags(tx->sta, WLAN_STA_MFP)))) { | ||
436 | I802_DEBUG_INC(tx->local->tx_handlers_drop_unencrypted); | 439 | I802_DEBUG_INC(tx->local->tx_handlers_drop_unencrypted); |
437 | return TX_DROP; | 440 | return TX_DROP; |
438 | } else | 441 | } else |