ath9k: fix rx dma descriptor error flag handling
SVN-Revision: 24855
This commit is contained in:
parent
757315f80e
commit
f1becde97b
1 changed files with 53 additions and 0 deletions
53
package/mac80211/patches/560-ath9k_rx_error_handling.patch
Normal file
53
package/mac80211/patches/560-ath9k_rx_error_handling.patch
Normal file
|
@ -0,0 +1,53 @@
|
|||
--- a/drivers/net/wireless/ath/ath9k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/mac.c
|
||||
@@ -692,15 +692,16 @@ int ath9k_hw_rxprocdesc(struct ath_hw *a
|
||||
if ((ads.ds_rxstatus8 & AR_RxFrameOK) == 0) {
|
||||
if (ads.ds_rxstatus8 & AR_CRCErr)
|
||||
rs->rs_status |= ATH9K_RXERR_CRC;
|
||||
- else if (ads.ds_rxstatus8 & AR_PHYErr) {
|
||||
+ if (ads.ds_rxstatus8 & AR_PHYErr) {
|
||||
rs->rs_status |= ATH9K_RXERR_PHY;
|
||||
phyerr = MS(ads.ds_rxstatus8, AR_PHYErrCode);
|
||||
rs->rs_phyerr = phyerr;
|
||||
- } else if (ads.ds_rxstatus8 & AR_DecryptCRCErr)
|
||||
+ }
|
||||
+ if (ads.ds_rxstatus8 & AR_DecryptCRCErr)
|
||||
rs->rs_status |= ATH9K_RXERR_DECRYPT;
|
||||
- else if (ads.ds_rxstatus8 & AR_MichaelErr)
|
||||
+ if (ads.ds_rxstatus8 & AR_MichaelErr)
|
||||
rs->rs_status |= ATH9K_RXERR_MIC;
|
||||
- else if (ads.ds_rxstatus8 & AR_KeyMiss)
|
||||
+ if (ads.ds_rxstatus8 & AR_KeyMiss)
|
||||
rs->rs_status |= ATH9K_RXERR_DECRYPT;
|
||||
}
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
|
||||
@@ -613,9 +613,9 @@ int ath9k_hw_process_rxdesc_edma(struct
|
||||
* possibly be reviewing the last subframe. AR_CRCErr
|
||||
* is the CRC of the actual data.
|
||||
*/
|
||||
- if (rxsp->status11 & AR_CRCErr) {
|
||||
+ if (rxsp->status11 & AR_CRCErr)
|
||||
rxs->rs_status |= ATH9K_RXERR_CRC;
|
||||
- } else if (rxsp->status11 & AR_PHYErr) {
|
||||
+ if (rxsp->status11 & AR_PHYErr) {
|
||||
phyerr = MS(rxsp->status11, AR_PHYErrCode);
|
||||
/*
|
||||
* If we reach a point here where AR_PostDelimCRCErr is
|
||||
@@ -638,11 +638,12 @@ int ath9k_hw_process_rxdesc_edma(struct
|
||||
rxs->rs_phyerr = phyerr;
|
||||
}
|
||||
|
||||
- } else if (rxsp->status11 & AR_DecryptCRCErr) {
|
||||
+ }
|
||||
+ if (rxsp->status11 & AR_DecryptCRCErr)
|
||||
rxs->rs_status |= ATH9K_RXERR_DECRYPT;
|
||||
- } else if (rxsp->status11 & AR_MichaelErr) {
|
||||
+ if (rxsp->status11 & AR_MichaelErr)
|
||||
rxs->rs_status |= ATH9K_RXERR_MIC;
|
||||
- } else if (rxsp->status11 & AR_KeyMiss)
|
||||
+ if (rxsp->status11 & AR_KeyMiss)
|
||||
rxs->rs_status |= ATH9K_RXERR_DECRYPT;
|
||||
}
|
||||
|
Loading…
Reference in a new issue