diff options
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r-- | net/mac80211/tx.c | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 7e7de811e6ad..0bae03bca49e 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -593,23 +593,8 @@ ieee80211_tx_h_select_key(struct ieee80211_tx_data *tx) | |||
593 | else if (!is_multicast_ether_addr(hdr->addr1) && | 593 | else if (!is_multicast_ether_addr(hdr->addr1) && |
594 | (key = rcu_dereference(tx->sdata->default_unicast_key))) | 594 | (key = rcu_dereference(tx->sdata->default_unicast_key))) |
595 | tx->key = key; | 595 | tx->key = key; |
596 | else if (info->flags & IEEE80211_TX_CTL_INJECTED) | 596 | else |
597 | tx->key = NULL; | ||
598 | else if (!tx->sdata->drop_unencrypted) | ||
599 | tx->key = NULL; | ||
600 | else if (tx->skb->protocol == tx->sdata->control_port_protocol) | ||
601 | tx->key = NULL; | ||
602 | else if (ieee80211_is_robust_mgmt_frame(tx->skb) && | ||
603 | !(ieee80211_is_action(hdr->frame_control) && | ||
604 | tx->sta && test_sta_flag(tx->sta, WLAN_STA_MFP))) | ||
605 | tx->key = NULL; | ||
606 | else if (ieee80211_is_mgmt(hdr->frame_control) && | ||
607 | !ieee80211_is_robust_mgmt_frame(tx->skb)) | ||
608 | tx->key = NULL; | 597 | tx->key = NULL; |
609 | else { | ||
610 | I802_DEBUG_INC(tx->local->tx_handlers_drop_unencrypted); | ||
611 | return TX_DROP; | ||
612 | } | ||
613 | 598 | ||
614 | if (tx->key) { | 599 | if (tx->key) { |
615 | bool skip_hw = false; | 600 | bool skip_hw = false; |