Search Linux Wireless

Re: [PATCH] rt2x00: handle spurious pci interrupts

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

 



On Wed, Nov 16, 2011 at 1:58 PM, Stanislaw Gruszka <sgruszka@xxxxxxxxxx> wrote:
> We have documented case of very bad performance issue on rt2800pci
> device, because it generate spurious interrupt, what cause irq line
> is disabled: https://bugzilla.redhat.com/show_bug.cgi?id=658451
>
> We already address that problem in separate patch by returning
> IRQ_HANDLED from interrupt handler. We think similar fix is needed for
> other rt2x00 PCI devices, because users report performance problems on
> these devices too.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx>

Acked-by: Ivo van Doorn <IvDoorn@xxxxxxxxx>

> ---
>  drivers/net/wireless/rt2x00/rt2400pci.c |    2 +-
>  drivers/net/wireless/rt2x00/rt2500pci.c |    2 +-
>  drivers/net/wireless/rt2x00/rt61pci.c   |    2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
> index 3a6b402..676c765 100644
> --- a/drivers/net/wireless/rt2x00/rt2400pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2400pci.c
> @@ -1380,7 +1380,7 @@ static irqreturn_t rt2400pci_interrupt(int irq, void *dev_instance)
>        rt2x00pci_register_write(rt2x00dev, CSR7, reg);
>
>        if (!reg)
> -               return IRQ_NONE;
> +               return IRQ_HANDLED;
>
>        if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
>                return IRQ_HANDLED;
> diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
> index dcc0e1f..d0b627c 100644
> --- a/drivers/net/wireless/rt2x00/rt2500pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2500pci.c
> @@ -1512,7 +1512,7 @@ static irqreturn_t rt2500pci_interrupt(int irq, void *dev_instance)
>        rt2x00pci_register_write(rt2x00dev, CSR7, reg);
>
>        if (!reg)
> -               return IRQ_NONE;
> +               return IRQ_HANDLED;
>
>        if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
>                return IRQ_HANDLED;
> diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
> index bf55b4a..9d83e70 100644
> --- a/drivers/net/wireless/rt2x00/rt61pci.c
> +++ b/drivers/net/wireless/rt2x00/rt61pci.c
> @@ -2337,7 +2337,7 @@ static irqreturn_t rt61pci_interrupt(int irq, void *dev_instance)
>        rt2x00pci_register_write(rt2x00dev, INT_SOURCE_CSR, reg);
>
>        if (!reg && !reg_mcu)
> -               return IRQ_NONE;
> +               return IRQ_HANDLED;
>
>        if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
>                return IRQ_HANDLED;
> --
> 1.7.1
>
>
--
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