Thanks Stefan, I will test as soon as 38.5 hits testing (or maybe I will game enough to do it from unstable!)
Cheers, Marcos On Martes 26 Abril 2011 06:01:27 usted escribió: > Hi > > Neither crda nor wpasupplicant are responsible for such a behaviour, > but this bug is likely fixed by the attached patch, which will end up > in the upcoming 2.6.38.5 kernel. > > Regards > Stefan Lippers-Hollmann > > ---------- Forwarded Message ---------- > > Betreff: Patch "ath9k_hw: partially revert "fix dma descriptor rx error bit > parsing"" has been added to the 2.6.38-stable tree Date: Monday 25 April > 2011 > From: gre...@suse.de > To: n...@openwrt.org, gre...@suse.de, linvi...@tuxdriver.com > > > This is a note to let you know that I've just added the patch titled > > ath9k_hw: partially revert "fix dma descriptor rx error bit parsing" > > to the 2.6.38-stable tree which can be found at: > > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=su > mmary > > The filename of the patch is: > > ath9k_hw-partially-revert-fix-dma-descriptor-rx-error-bit-parsing.patch > and it can be found in the queue-2.6.38 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let <sta...@kernel.org> know about it. > > > From 115dad7a7f42e68840392767323ceb9306dbdb36 Mon Sep 17 00:00:00 2001 > From: Felix Fietkau <n...@openwrt.org> > Date: Fri, 14 Jan 2011 00:06:27 +0100 > Subject: ath9k_hw: partially revert "fix dma descriptor rx error bit > parsing" > > From: Felix Fietkau <n...@openwrt.org> > > commit 115dad7a7f42e68840392767323ceb9306dbdb36 upstream. > > The rx error bit parsing was changed to consider PHY errors and various > decryption errors separately. While correct according to the documentation, > this is causing spurious decryption error reports in some situations. > > Fix this by restoring the original order of the checks in those places, > where the errors are meant to be mutually exclusive. > > If a CRC error is reported, then MIC failure and decryption errors > are irrelevant, and a PHY error is unlikely. > > Signed-off-by: Felix Fietkau <n...@openwrt.org> > Signed-off-by: John W. Linville <linvi...@tuxdriver.com> > Signed-off-by: Greg Kroah-Hartman <gre...@suse.de> > > --- > drivers/net/wireless/ath/ath9k/ar9003_mac.c | 8 ++++---- > drivers/net/wireless/ath/ath9k/mac.c | 14 ++++++++++---- > 2 files changed, 14 insertions(+), 8 deletions(-) > > --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c > +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c > @@ -615,7 +615,7 @@ int ath9k_hw_process_rxdesc_edma(struct > */ > if (rxsp->status11 & AR_CRCErr) > rxs->rs_status |= ATH9K_RXERR_CRC; > - if (rxsp->status11 & AR_PHYErr) { > + else if (rxsp->status11 & AR_PHYErr) { > phyerr = MS(rxsp->status11, AR_PHYErrCode); > /* > * If we reach a point here where AR_PostDelimCRCErr is > @@ -638,11 +638,11 @@ int ath9k_hw_process_rxdesc_edma(struct > rxs->rs_phyerr = phyerr; > } > > - } > - if (rxsp->status11 & AR_DecryptCRCErr) > + } else if (rxsp->status11 & AR_DecryptCRCErr) > rxs->rs_status |= ATH9K_RXERR_DECRYPT; > - if (rxsp->status11 & AR_MichaelErr) > + else if (rxsp->status11 & AR_MichaelErr) > rxs->rs_status |= ATH9K_RXERR_MIC; > + > if (rxsp->status11 & AR_KeyMiss) > rxs->rs_status |= ATH9K_RXERR_DECRYPT; > } > --- a/drivers/net/wireless/ath/ath9k/mac.c > +++ b/drivers/net/wireless/ath/ath9k/mac.c > @@ -690,17 +690,23 @@ int ath9k_hw_rxprocdesc(struct ath_hw *a > rs->rs_flags |= ATH9K_RX_DECRYPT_BUSY; > > if ((ads.ds_rxstatus8 & AR_RxFrameOK) == 0) { > + /* > + * Treat these errors as mutually exclusive to avoid spurious > + * extra error reports from the hardware. If a CRC error is > + * reported, then decryption and MIC errors are irrelevant, > + * the frame is going to be dropped either way > + */ > if (ads.ds_rxstatus8 & AR_CRCErr) > rs->rs_status |= ATH9K_RXERR_CRC; > - if (ads.ds_rxstatus8 & AR_PHYErr) { > + else if (ads.ds_rxstatus8 & AR_PHYErr) { > rs->rs_status |= ATH9K_RXERR_PHY; > phyerr = MS(ads.ds_rxstatus8, AR_PHYErrCode); > rs->rs_phyerr = phyerr; > - } > - if (ads.ds_rxstatus8 & AR_DecryptCRCErr) > + } else if (ads.ds_rxstatus8 & AR_DecryptCRCErr) > rs->rs_status |= ATH9K_RXERR_DECRYPT; > - if (ads.ds_rxstatus8 & AR_MichaelErr) > + else if (ads.ds_rxstatus8 & AR_MichaelErr) > rs->rs_status |= ATH9K_RXERR_MIC; > + > if (ads.ds_rxstatus8 & AR_KeyMiss) > rs->rs_status |= ATH9K_RXERR_DECRYPT; > } -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org