ath9k: merge a tkip related stability fix

SVN-Revision: 31428
owl
Felix Fietkau 2012-04-21 20:34:33 +00:00
parent 075618c6e3
commit b510eebece
2 changed files with 13 additions and 3 deletions

View File

@ -802,3 +802,13 @@
#include "dev.h" #include "dev.h"
#include "decl.h" #include "decl.h"
--- 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_c
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));

View File

@ -137,7 +137,7 @@
u8 rs_num_delims; u8 rs_num_delims;
--- a/drivers/net/wireless/ath/ath9k/recv.c --- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -987,6 +987,7 @@ static int ath9k_rx_skb_preprocess(struc @@ -988,6 +988,7 @@ static int ath9k_rx_skb_preprocess(struc
bool *decrypt_error) bool *decrypt_error)
{ {
struct ath_hw *ah = common->ah; struct ath_hw *ah = common->ah;
@ -145,7 +145,7 @@
/* /*
* everything but the rate is checked here, the rate check is done * everything but the rate is checked here, the rate check is done
@@ -1012,6 +1013,20 @@ static int ath9k_rx_skb_preprocess(struc @@ -1013,6 +1014,20 @@ static int ath9k_rx_skb_preprocess(struc
if (rx_stats->rs_moreaggr) if (rx_stats->rs_moreaggr)
rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL; rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL;
@ -166,7 +166,7 @@
return 0; return 0;
} }
@@ -1542,14 +1557,14 @@ static void ath_ant_comb_scan(struct ath @@ -1543,14 +1558,14 @@ static void ath_ant_comb_scan(struct ath
struct ath_ant_comb *antcomb = &sc->ant_comb; struct ath_ant_comb *antcomb = &sc->ant_comb;
int alt_ratio = 0, alt_rssi_avg = 0, main_rssi_avg = 0, curr_alt_set; int alt_ratio = 0, alt_rssi_avg = 0, main_rssi_avg = 0, curr_alt_set;
int curr_main_set; int curr_main_set;