This patch doesn't apply to the .37 stable tree.
If someone wants it applied there, please email the backport
to [email protected]

thanks,

greg k-h

> commit: ff32d9cd2c4107224a28f39d3c72eec66d566e09
> From: Felix Fietkau <[email protected]>
> Date: Thu, 21 Oct 2010 02:47:23 +0200
> Subject: [PATCH] ath9k_hw: fix potential spurious tx error bit interpretation
> 
> According to documentation, AR_ExcessiveRetries, AR_Filtered and
> AR_FIFOUnderrun are only valid if AR_FrmXmitOK is clear.
> 
> Not checking this might result in suboptimal FIFO settings, unnecessary
> retransmissions, or other connectivity issues.
> 
> Signed-off-by: Felix Fietkau <[email protected]>
> Cc: [email protected]
> Signed-off-by: John W. Linville <[email protected]>
> ---
>  drivers/net/wireless/ath/ath9k/ar9002_mac.c |   16 +++++++++-------
>  1 files changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c 
> b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
> index 3b4c52c..f0268e5 100644
> --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
> +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
> @@ -237,13 +237,15 @@ static int ar9002_hw_proc_txdesc(struct ath_hw *ah, 
> void *ds,
>       status = ACCESS_ONCE(ads->ds_txstatus1);
>       if (status & AR_FrmXmitOK)
>               ts->ts_status |= ATH9K_TX_ACKED;
> -     if (status & AR_ExcessiveRetries)
> -             ts->ts_status |= ATH9K_TXERR_XRETRY;
> -     if (status & AR_Filtered)
> -             ts->ts_status |= ATH9K_TXERR_FILT;
> -     if (status & AR_FIFOUnderrun) {
> -             ts->ts_status |= ATH9K_TXERR_FIFO;
> -             ath9k_hw_updatetxtriglevel(ah, true);
> +     else {
> +             if (status & AR_ExcessiveRetries)
> +                     ts->ts_status |= ATH9K_TXERR_XRETRY;
> +             if (status & AR_Filtered)
> +                     ts->ts_status |= ATH9K_TXERR_FILT;
> +             if (status & AR_FIFOUnderrun) {
> +                     ts->ts_status |= ATH9K_TXERR_FIFO;
> +                     ath9k_hw_updatetxtriglevel(ah, true);
> +             }
>       }
>       if (status & AR_TxTimerExpired)
>               ts->ts_status |= ATH9K_TXERR_TIMER_EXPIRED;
> 
> _______________________________________________
> stable mailing list
> [email protected]
> http://linux.kernel.org/mailman/listinfo/stable

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to