rt2x00: handle spurious pci interrupts
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@vger.kernel.org Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
4ba7d99978
commit
23085d5796
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue