ath9k: Do not indicate RX_FLAG_DECRYPTED for unprotected frames
authorJouni Malinen <j@w1.fi>
Tue, 30 Mar 2010 06:37:36 +0000 (23:37 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 31 Mar 2010 18:46:42 +0000 (14:46 -0400)
mac80211 skips drop_unencrypted checks if the driver/firmware has
already taken care of this. In case of ath9k, we must not indicate
that the frame was decrypted if no decryption was actually done.

Signed-off-by: Jouni Malinen <j@w1.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/common.c

index cf768f2811ebd96cfad05a801eba8d03e817a6b8..09effdedc8c085eb64d482d9147e0a9881d5386f 100644 (file)
@@ -255,7 +255,8 @@ void ath9k_cmn_rx_skb_postprocess(struct ath_common *common,
 
        keyix = rx_stats->rs_keyix;
 
-       if (!(keyix == ATH9K_RXKEYIX_INVALID) && !decrypt_error) {
+       if (!(keyix == ATH9K_RXKEYIX_INVALID) && !decrypt_error &&
+           ieee80211_has_protected(fc)) {
                rxs->flag |= RX_FLAG_DECRYPTED;
        } else if (ieee80211_has_protected(fc)
                   && !decrypt_error && skb->len >= hdrlen + 4) {