From: Michael Liang Date: Fri, 20 Apr 2012 09:11:57 +0000 (+0800) Subject: ath9k: don't strip mic on non-encrypted frames in tkip X-Git-Tag: v3.5-rc1~109^2~267^2^2~39 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2a5783b817c90ce6fb82a21e103335d1ecbac430;p=platform%2Fupstream%2Fkernel-adaptation-pc.git ath9k: don't strip mic on non-encrypted frames in tkip Fix the following bug: in tkip mode, qos-null ps on/off packets are dropped due to incorrect packet length so that ath9k softap can't handle powersave state transition of peer STA correctly. Signed-off-by: Michael Liang Signed-off-by: John W. Linville --- diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index 12b0979..544e549 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c @@ -812,6 +812,7 @@ static bool ath9k_rx_accept(struct ath_common *common, is_valid_tkip = rx_stats->rs_keyix != ATH9K_RXKEYIX_INVALID && test_bit(rx_stats->rs_keyix, common->tkip_keymap); strip_mic = is_valid_tkip && ieee80211_is_data(fc) && + ieee80211_has_protected(fc) && !(rx_stats->rs_status & (ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC | ATH9K_RXERR_KEYMISS));