[MAC80211]: use RX_FLAG_DECRYPTED for sw decrypted as well
authorJohannes Berg <johannes@sipsolutions.net>
Wed, 26 Sep 2007 15:53:16 +0000 (17:53 +0200)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 10 Oct 2007 23:54:17 +0000 (16:54 -0700)
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>
net/mac80211/rx.c

index d5ce5d3649f3152ab009179f42b2f53ec5fa4f71..f5caa1a016ee28186c3451afa3e8278df3ea46b0 100644 (file)
@@ -522,6 +522,9 @@ ieee80211_rx_h_decrypt(struct ieee80211_txrx_data *rx)
            ieee80211_wep_is_weak_iv(rx->skb, rx->key))
                rx->sta->wep_weak_iv_count++;
 
+       /* either the frame will be decrypted or dropped */
+       rx->u.rx.status->flag |= RX_FLAG_DECRYPTED;
+
        switch (rx->key->conf.alg) {
        case ALG_WEP:
                return ieee80211_crypto_wep_decrypt(rx);
@@ -993,9 +996,8 @@ ieee80211_rx_h_drop_unencrypted(struct ieee80211_txrx_data *rx)
        if (unlikely(!(rx->fc & IEEE80211_FCTL_PROTECTED) &&
                     (rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA &&
                     (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_NULLFUNC &&
-                    (rx->key || rx->sdata->drop_unencrypted) &&
-                    (rx->sdata->eapol == 0 ||
-                     !ieee80211_is_eapol(rx->skb)))) {
+                    rx->sdata->drop_unencrypted &&
+                    (rx->sdata->eapol == 0 || !ieee80211_is_eapol(rx->skb)))) {
                if (net_ratelimit())
                        printk(KERN_DEBUG "%s: RX non-WEP frame, but expected "
                               "encryption\n", rx->dev->name);