Search Linux Wireless

Re: [PATCH 02/11] ath9k: Fix rx overrun interrupt storm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I did this in FreeBSD to fix RXEOL storms, but I was receiving them
because I had phyerr's enabled (for radar) and the PCU list end had
actually been hit.
So I added code which kicks off a PCU stop/start in the RX handler
(once whatever packets were in the RX queue) so that the PCU receive
would then begin again.

Were you seeing it occur because you hit the end of the RX descriptor
list? Or some other reason?

I ask because I'm seeing issues with an AR9280 (SR71-E) on FreeBSD,
where the PCU stops RX for some reason, and constantly fires off
RXEOLs. Warm resets don't fix it, I have to do a cold reset to fix it.
:(


Adrian

On 13 August 2011 12:58, Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxxxx> wrote:
> Whenever RXEOL is received, both RXORN and RXEOL got cleared
> to avoid rx overrun interrupt storm. This was handled only for
> edma chips. The same scenario was also observered with AR9280,
> doing frequent channel type switch b/w HT20/40 with bidi traffic
> that is causing failure to stop rx dma. This patch clears
> the RXEOL & RXORN interrupts for all chips.
>
> ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020
> DMADBG_7=0x000062c0
> ath: Could not stop RX, we could be confusing the DMA engine when we
> start RX up
> ------------[ cut here ]------------
> WARNING: at drivers/net/wireless/ath/ath9k/recv.c:532
> ath_stoprecv+0x110/0x120 [ath9k]()
> Call Trace:
>  [<ffffffff8104a55a>] warn_slowpath_common+0x7a/0xb0
>  [<ffffffff8104a5a5>] warn_slowpath_null+0x15/0x20
>  [<ffffffffa0560380>] ath_stoprecv+0x110/0x120 [ath9k]
>  [<ffffffffa055e6fa>] ath_reset+0x6a/0x200 [ath9k]
>
> Signed-off-by: Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxxxx>
> ---
>  drivers/net/wireless/ath/ath9k/main.c |    8 +++-----
>  1 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
> index 1e7fe8c..097c1eb 100644
> --- a/drivers/net/wireless/ath/ath9k/main.c
> +++ b/drivers/net/wireless/ath/ath9k/main.c
> @@ -826,11 +826,9 @@ irqreturn_t ath_isr(int irq, void *dev)
>        if (status & ATH9K_INT_TXURN)
>                ath9k_hw_updatetxtriglevel(ah, true);
>
> -       if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
> -               if (status & ATH9K_INT_RXEOL) {
> -                       ah->imask &= ~(ATH9K_INT_RXEOL | ATH9K_INT_RXORN);
> -                       ath9k_hw_set_interrupts(ah, ah->imask);
> -               }
> +       if (status & ATH9K_INT_RXEOL) {
> +               ah->imask &= ~(ATH9K_INT_RXEOL | ATH9K_INT_RXORN);
> +               ath9k_hw_set_interrupts(ah, ah->imask);
>        }
>
>        if (status & ATH9K_INT_MIB) {
> --
> 1.7.6
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux