ath9k: fix rx dma descriptor error flag handling
[openwrt/svn-archive/archive.git] / package / mac80211 / patches / 560-ath9k_rx_error_handling.patch
1 --- a/drivers/net/wireless/ath/ath9k/mac.c
2 +++ b/drivers/net/wireless/ath/ath9k/mac.c
3 @@ -692,15 +692,16 @@ int ath9k_hw_rxprocdesc(struct ath_hw *a
4 if ((ads.ds_rxstatus8 & AR_RxFrameOK) == 0) {
5 if (ads.ds_rxstatus8 & AR_CRCErr)
6 rs->rs_status |= ATH9K_RXERR_CRC;
7 - else if (ads.ds_rxstatus8 & AR_PHYErr) {
8 + if (ads.ds_rxstatus8 & AR_PHYErr) {
9 rs->rs_status |= ATH9K_RXERR_PHY;
10 phyerr = MS(ads.ds_rxstatus8, AR_PHYErrCode);
11 rs->rs_phyerr = phyerr;
12 - } else if (ads.ds_rxstatus8 & AR_DecryptCRCErr)
13 + }
14 + if (ads.ds_rxstatus8 & AR_DecryptCRCErr)
15 rs->rs_status |= ATH9K_RXERR_DECRYPT;
16 - else if (ads.ds_rxstatus8 & AR_MichaelErr)
17 + if (ads.ds_rxstatus8 & AR_MichaelErr)
18 rs->rs_status |= ATH9K_RXERR_MIC;
19 - else if (ads.ds_rxstatus8 & AR_KeyMiss)
20 + if (ads.ds_rxstatus8 & AR_KeyMiss)
21 rs->rs_status |= ATH9K_RXERR_DECRYPT;
22 }
23
24 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
25 +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
26 @@ -613,9 +613,9 @@ int ath9k_hw_process_rxdesc_edma(struct
27 * possibly be reviewing the last subframe. AR_CRCErr
28 * is the CRC of the actual data.
29 */
30 - if (rxsp->status11 & AR_CRCErr) {
31 + if (rxsp->status11 & AR_CRCErr)
32 rxs->rs_status |= ATH9K_RXERR_CRC;
33 - } else if (rxsp->status11 & AR_PHYErr) {
34 + if (rxsp->status11 & AR_PHYErr) {
35 phyerr = MS(rxsp->status11, AR_PHYErrCode);
36 /*
37 * If we reach a point here where AR_PostDelimCRCErr is
38 @@ -638,11 +638,12 @@ int ath9k_hw_process_rxdesc_edma(struct
39 rxs->rs_phyerr = phyerr;
40 }
41
42 - } else if (rxsp->status11 & AR_DecryptCRCErr) {
43 + }
44 + if (rxsp->status11 & AR_DecryptCRCErr)
45 rxs->rs_status |= ATH9K_RXERR_DECRYPT;
46 - } else if (rxsp->status11 & AR_MichaelErr) {
47 + if (rxsp->status11 & AR_MichaelErr)
48 rxs->rs_status |= ATH9K_RXERR_MIC;
49 - } else if (rxsp->status11 & AR_KeyMiss)
50 + if (rxsp->status11 & AR_KeyMiss)
51 rxs->rs_status |= ATH9K_RXERR_DECRYPT;
52 }
53