aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2007-09-26 11:53:16 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:54:17 -0400
commit640845a5632390eaa9357cd818646c8f0ee3d47e (patch)
tree1a723d402a1d56590e1c2f20a27eca28869d7167
parent1990af8d14e48445a0ddcca7765a177b6661d676 (diff)
[MAC80211]: use RX_FLAG_DECRYPTED for sw decrypted as well
This makes mac80211 set the RX_FLAG_DECRYPTED flag for frames decrypted in software allowing us to handle some things more uniformly. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/mac80211/rx.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index d5ce5d3649f3..f5caa1a016ee 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -522,6 +522,9 @@ ieee80211_rx_h_decrypt(struct ieee80211_txrx_data *rx)
522 ieee80211_wep_is_weak_iv(rx->skb, rx->key)) 522 ieee80211_wep_is_weak_iv(rx->skb, rx->key))
523 rx->sta->wep_weak_iv_count++; 523 rx->sta->wep_weak_iv_count++;
524 524
525 /* either the frame will be decrypted or dropped */
526 rx->u.rx.status->flag |= RX_FLAG_DECRYPTED;
527
525 switch (rx->key->conf.alg) { 528 switch (rx->key->conf.alg) {
526 case ALG_WEP: 529 case ALG_WEP:
527 return ieee80211_crypto_wep_decrypt(rx); 530 return ieee80211_crypto_wep_decrypt(rx);
@@ -993,9 +996,8 @@ ieee80211_rx_h_drop_unencrypted(struct ieee80211_txrx_data *rx)
993 if (unlikely(!(rx->fc & IEEE80211_FCTL_PROTECTED) && 996 if (unlikely(!(rx->fc & IEEE80211_FCTL_PROTECTED) &&
994 (rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA && 997 (rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA &&
995 (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_NULLFUNC && 998 (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_NULLFUNC &&
996 (rx->key || rx->sdata->drop_unencrypted) && 999 rx->sdata->drop_unencrypted &&
997 (rx->sdata->eapol == 0 || 1000 (rx->sdata->eapol == 0 || !ieee80211_is_eapol(rx->skb)))) {
998 !ieee80211_is_eapol(rx->skb)))) {
999 if (net_ratelimit()) 1001 if (net_ratelimit())
1000 printk(KERN_DEBUG "%s: RX non-WEP frame, but expected " 1002 printk(KERN_DEBUG "%s: RX non-WEP frame, but expected "
1001 "encryption\n", rx->dev->name); 1003 "encryption\n", rx->dev->name);