Commit d89197c7 authored by John W. Linville's avatar John W. Linville

Revert "ath9k: Fix STA disconnect issue due to received MIC failed bcast frames"

This reverts commit 916448e7.

"As far as I can tell, either of these patches breaks multiple VIF
scenarios.  I'm not sure exactly why, but I had to revert this to
get any of my interfaces to associate."
  -- Ben Greear <greearb@candelatech.com>

http://marc.info/?l=linux-wireless&m=129123368719339&w=2Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent f67e07eb
...@@ -703,7 +703,8 @@ int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds, ...@@ -703,7 +703,8 @@ int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds,
rs->rs_phyerr = phyerr; rs->rs_phyerr = phyerr;
} else if (ads.ds_rxstatus8 & AR_DecryptCRCErr) } else if (ads.ds_rxstatus8 & AR_DecryptCRCErr)
rs->rs_status |= ATH9K_RXERR_DECRYPT; rs->rs_status |= ATH9K_RXERR_DECRYPT;
else if (ads.ds_rxstatus8 & AR_MichaelErr) else if ((ads.ds_rxstatus8 & AR_MichaelErr) &&
rs->rs_keyix != ATH9K_RXKEYIX_INVALID)
rs->rs_status |= ATH9K_RXERR_MIC; rs->rs_status |= ATH9K_RXERR_MIC;
else if (ads.ds_rxstatus8 & AR_KeyMiss) else if (ads.ds_rxstatus8 & AR_KeyMiss)
rs->rs_status |= ATH9K_RXERR_DECRYPT; rs->rs_status |= ATH9K_RXERR_DECRYPT;
......
...@@ -1049,11 +1049,9 @@ static void ath9k_rx_skb_postprocess(struct ath_common *common, ...@@ -1049,11 +1049,9 @@ static void ath9k_rx_skb_postprocess(struct ath_common *common,
int hdrlen, padpos, padsize; int hdrlen, padpos, padsize;
u8 keyix; u8 keyix;
__le16 fc; __le16 fc;
bool is_mc;
/* see if any padding is done by the hw and remove it */ /* see if any padding is done by the hw and remove it */
hdr = (struct ieee80211_hdr *) skb->data; hdr = (struct ieee80211_hdr *) skb->data;
is_mc = !!is_multicast_ether_addr(hdr->addr1);
hdrlen = ieee80211_get_hdrlen_from_skb(skb); hdrlen = ieee80211_get_hdrlen_from_skb(skb);
fc = hdr->frame_control; fc = hdr->frame_control;
padpos = ath9k_cmn_padpos(hdr->frame_control); padpos = ath9k_cmn_padpos(hdr->frame_control);
...@@ -1074,7 +1072,7 @@ static void ath9k_rx_skb_postprocess(struct ath_common *common, ...@@ -1074,7 +1072,7 @@ static void ath9k_rx_skb_postprocess(struct ath_common *common,
keyix = rx_stats->rs_keyix; keyix = rx_stats->rs_keyix;
if ((is_mc || !(keyix == ATH9K_RXKEYIX_INVALID)) && !decrypt_error && if (!(keyix == ATH9K_RXKEYIX_INVALID) && !decrypt_error &&
ieee80211_has_protected(fc)) { ieee80211_has_protected(fc)) {
rxs->flag |= RX_FLAG_DECRYPTED; rxs->flag |= RX_FLAG_DECRYPTED;
} else if (ieee80211_has_protected(fc) } else if (ieee80211_has_protected(fc)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment