Commit e8f4fb7c authored by Johannes Berg's avatar Johannes Berg

mac80211: remove drop_unencrypted code

This mechanism was historic, and only ever used by IBSS, which
also doesn't need to have it as it properly manages station's
802.1X PAE state (or, with WEP, always has a key.)

Remove the mechanism to clean up the code.
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent c7ef38e0
...@@ -274,8 +274,6 @@ void debugfs_hw_add(struct ieee80211_local *local) ...@@ -274,8 +274,6 @@ void debugfs_hw_add(struct ieee80211_local *local)
#ifdef CONFIG_MAC80211_DEBUG_COUNTERS #ifdef CONFIG_MAC80211_DEBUG_COUNTERS
DEBUGFS_STATS_ADD(tx_handlers_drop, local->tx_handlers_drop); DEBUGFS_STATS_ADD(tx_handlers_drop, local->tx_handlers_drop);
DEBUGFS_STATS_ADD(tx_handlers_queued, local->tx_handlers_queued); DEBUGFS_STATS_ADD(tx_handlers_queued, local->tx_handlers_queued);
DEBUGFS_STATS_ADD(tx_handlers_drop_unencrypted,
local->tx_handlers_drop_unencrypted);
DEBUGFS_STATS_ADD(tx_handlers_drop_fragment, DEBUGFS_STATS_ADD(tx_handlers_drop_fragment,
local->tx_handlers_drop_fragment); local->tx_handlers_drop_fragment);
DEBUGFS_STATS_ADD(tx_handlers_drop_wep, DEBUGFS_STATS_ADD(tx_handlers_drop_wep,
......
...@@ -177,7 +177,6 @@ static ssize_t ieee80211_if_write_##name(struct file *file, \ ...@@ -177,7 +177,6 @@ static ssize_t ieee80211_if_write_##name(struct file *file, \
IEEE80211_IF_FILE_R(name) IEEE80211_IF_FILE_R(name)
/* common attributes */ /* common attributes */
IEEE80211_IF_FILE(drop_unencrypted, drop_unencrypted, DEC);
IEEE80211_IF_FILE(rc_rateidx_mask_2ghz, rc_rateidx_mask[IEEE80211_BAND_2GHZ], IEEE80211_IF_FILE(rc_rateidx_mask_2ghz, rc_rateidx_mask[IEEE80211_BAND_2GHZ],
HEX); HEX);
IEEE80211_IF_FILE(rc_rateidx_mask_5ghz, rc_rateidx_mask[IEEE80211_BAND_5GHZ], IEEE80211_IF_FILE(rc_rateidx_mask_5ghz, rc_rateidx_mask[IEEE80211_BAND_5GHZ],
...@@ -562,7 +561,6 @@ IEEE80211_IF_FILE(dot11MeshAwakeWindowDuration, ...@@ -562,7 +561,6 @@ IEEE80211_IF_FILE(dot11MeshAwakeWindowDuration,
static void add_common_files(struct ieee80211_sub_if_data *sdata) static void add_common_files(struct ieee80211_sub_if_data *sdata)
{ {
DEBUGFS_ADD(drop_unencrypted);
DEBUGFS_ADD(rc_rateidx_mask_2ghz); DEBUGFS_ADD(rc_rateidx_mask_2ghz);
DEBUGFS_ADD(rc_rateidx_mask_5ghz); DEBUGFS_ADD(rc_rateidx_mask_5ghz);
DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz); DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz);
......
...@@ -249,8 +249,6 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, ...@@ -249,8 +249,6 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
if (presp) if (presp)
kfree_rcu(presp, rcu_head); kfree_rcu(presp, rcu_head);
sdata->drop_unencrypted = capability & WLAN_CAPABILITY_PRIVACY ? 1 : 0;
/* make a copy of the chandef, it could be modified below. */ /* make a copy of the chandef, it could be modified below. */
chandef = *req_chandef; chandef = *req_chandef;
chan = chandef.chan; chan = chandef.chan;
...@@ -1303,8 +1301,6 @@ static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata) ...@@ -1303,8 +1301,6 @@ static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata)
if (ifibss->privacy) if (ifibss->privacy)
capability |= WLAN_CAPABILITY_PRIVACY; capability |= WLAN_CAPABILITY_PRIVACY;
else
sdata->drop_unencrypted = 0;
__ieee80211_sta_join_ibss(sdata, bssid, sdata->vif.bss_conf.beacon_int, __ieee80211_sta_join_ibss(sdata, bssid, sdata->vif.bss_conf.beacon_int,
&ifibss->chandef, ifibss->basic_rates, &ifibss->chandef, ifibss->basic_rates,
......
...@@ -818,8 +818,6 @@ struct ieee80211_sub_if_data { ...@@ -818,8 +818,6 @@ struct ieee80211_sub_if_data {
unsigned long state; unsigned long state;
int drop_unencrypted;
char name[IFNAMSIZ]; char name[IFNAMSIZ];
/* Fragment table for host-based reassembly */ /* Fragment table for host-based reassembly */
...@@ -1262,7 +1260,6 @@ struct ieee80211_local { ...@@ -1262,7 +1260,6 @@ struct ieee80211_local {
/* TX/RX handler statistics */ /* TX/RX handler statistics */
unsigned int tx_handlers_drop; unsigned int tx_handlers_drop;
unsigned int tx_handlers_queued; unsigned int tx_handlers_queued;
unsigned int tx_handlers_drop_unencrypted;
unsigned int tx_handlers_drop_fragment; unsigned int tx_handlers_drop_fragment;
unsigned int tx_handlers_drop_wep; unsigned int tx_handlers_drop_wep;
unsigned int tx_handlers_drop_not_assoc; unsigned int tx_handlers_drop_not_assoc;
......
...@@ -1508,7 +1508,6 @@ int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata, ...@@ -1508,7 +1508,6 @@ int ieee80211_if_change_type(struct ieee80211_sub_if_data *sdata,
} }
/* reset some values that shouldn't be kept across type changes */ /* reset some values that shouldn't be kept across type changes */
sdata->drop_unencrypted = 0;
if (type == NL80211_IFTYPE_STATION) if (type == NL80211_IFTYPE_STATION)
sdata->u.mgd.use_4addr = false; sdata->u.mgd.use_4addr = false;
......
...@@ -1912,8 +1912,7 @@ static int ieee80211_drop_unencrypted(struct ieee80211_rx_data *rx, __le16 fc) ...@@ -1912,8 +1912,7 @@ static int ieee80211_drop_unencrypted(struct ieee80211_rx_data *rx, __le16 fc)
/* Drop unencrypted frames if key is set. */ /* Drop unencrypted frames if key is set. */
if (unlikely(!ieee80211_has_protected(fc) && if (unlikely(!ieee80211_has_protected(fc) &&
!ieee80211_is_nullfunc(fc) && !ieee80211_is_nullfunc(fc) &&
ieee80211_is_data(fc) && ieee80211_is_data(fc) && rx->key))
(rx->key || rx->sdata->drop_unencrypted)))
return -EACCES; return -EACCES;
return 0; return 0;
......
...@@ -593,23 +593,8 @@ ieee80211_tx_h_select_key(struct ieee80211_tx_data *tx) ...@@ -593,23 +593,8 @@ ieee80211_tx_h_select_key(struct ieee80211_tx_data *tx)
else if (!is_multicast_ether_addr(hdr->addr1) && else if (!is_multicast_ether_addr(hdr->addr1) &&
(key = rcu_dereference(tx->sdata->default_unicast_key))) (key = rcu_dereference(tx->sdata->default_unicast_key)))
tx->key = key; tx->key = key;
else if (info->flags & IEEE80211_TX_CTL_INJECTED) else
tx->key = NULL;
else if (!tx->sdata->drop_unencrypted)
tx->key = NULL;
else if (tx->skb->protocol == tx->sdata->control_port_protocol)
tx->key = NULL;
else if (ieee80211_is_robust_mgmt_frame(tx->skb) &&
!(ieee80211_is_action(hdr->frame_control) &&
tx->sta && test_sta_flag(tx->sta, WLAN_STA_MFP)))
tx->key = NULL;
else if (ieee80211_is_mgmt(hdr->frame_control) &&
!ieee80211_is_robust_mgmt_frame(tx->skb))
tx->key = NULL; tx->key = NULL;
else {
I802_DEBUG_INC(tx->local->tx_handlers_drop_unencrypted);
return TX_DROP;
}
if (tx->key) { if (tx->key) {
bool skip_hw = false; bool skip_hw = false;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment