linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] rt2800pci: handle spurious interrupts
@ 2011-11-16 10:09 Stanislaw Gruszka
  2011-11-16 10:14 ` Ivo Van Doorn
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Stanislaw Gruszka @ 2011-11-16 10:09 UTC (permalink / raw)
  To: John W. Linville
  Cc: linux-wireless, Ivo van Doorn, Gertjan van Wingerde, Helmut Schaa,
	Amir Hedayaty

Some devices may generate spurious interrupts, we have to handle them
otherwise interrupt line will be disabled with below message and driver
will not work:

[ 2052.114334] irq 17: nobody cared (try booting with the "irqpoll" option)
[ 2052.114339] Pid: 0, comm: swapper Tainted: P           2.6.35.6-48.fc14.x86_64 #1
[ 2052.114341] Call Trace:
[ 2052.114342]  <IRQ>  [<ffffffff810a6e2b>] __report_bad_irq.clone.1+0x3d/0x8b
[ 2052.114349]  [<ffffffff810a6f93>] note_interrupt+0x11a/0x17f
[ 2052.114352]  [<ffffffff810a7a73>] handle_fasteoi_irq+0xa8/0xce
[ 2052.114355]  [<ffffffff8100c2ea>] handle_irq+0x88/0x90
[ 2052.114357]  [<ffffffff8146f034>] do_IRQ+0x5c/0xb4
[ 2052.114360]  [<ffffffff81469593>] ret_from_intr+0x0/0x11
[ 2052.114361]  <EOI>  [<ffffffff8102b7f9>] ? native_safe_halt+0xb/0xd
[ 2052.114366]  [<ffffffff81010f03>] ? need_resched+0x23/0x2d
[ 2052.114367]  [<ffffffff8101102a>] default_idle+0x34/0x4f
[ 2052.114370]  [<ffffffff81008325>] cpu_idle+0xaa/0xcc
[ 2052.114373]  [<ffffffff81461f2a>] start_secondary+0x24d/0x28e
[ 2052.114374] handlers:
[ 2052.114375] [<ffffffff81332944>] (usb_hcd_irq+0x0/0x7c)
[ 2052.114378] [<ffffffffa00697da>] (rt2800pci_interrupt+0x0/0x18d [rt2800pci])
[ 2052.114384] Disabling IRQ #17

Resolve:
https://bugzilla.redhat.com/show_bug.cgi?id=658451

Reported-and-tested-by: Amir Hedayaty <hedayaty@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
I changed rt2800pci only because get bug report for that device, not
sure if similar changes are not needed for other rt2x00 PCI devices.

 drivers/net/wireless/rt2x00/rt2800pci.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index da48c8a..4dc2d0f 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -880,8 +880,13 @@ static irqreturn_t rt2800pci_interrupt(int irq, void *dev_instance)
 	rt2x00pci_register_read(rt2x00dev, INT_SOURCE_CSR, &reg);
 	rt2x00pci_register_write(rt2x00dev, INT_SOURCE_CSR, reg);
 
+	/*
+	 * Some devices can generate interrupts with empty CSR register, we
+	 * "handle" such irq's to prevent interrupt controller treat them as
+	 * spurious interrupts and disable irq line.
+	 */
 	if (!reg)
-		return IRQ_NONE;
+		return IRQ_HANDLED;
 
 	if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
 		return IRQ_HANDLED;
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2011-11-23 20:49 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-16 10:09 [PATCH] rt2800pci: handle spurious interrupts Stanislaw Gruszka
2011-11-16 10:14 ` Ivo Van Doorn
2011-11-16 11:17   ` Stanislaw Gruszka
2011-11-16 11:45     ` Ivo Van Doorn
2011-11-16 10:46 ` Helmut Schaa
2011-11-16 10:52   ` Ivo Van Doorn
2011-11-16 11:01     ` Helmut Schaa
2011-11-22 20:33 ` Michael Basse
2011-11-22 22:10   ` Helmut Schaa
2011-11-23  6:25     ` Michael Basse
     [not found]   ` <20111123073500.GA9833@redhat.com>
2011-11-23 15:50     ` Michael Basse
2011-11-22 21:49 ` John W. Linville
2011-11-23  8:05   ` Stanislaw Gruszka
2011-11-23  8:50     ` Ivo Van Doorn
2011-11-23  8:51     ` Helmut Schaa
2011-11-23 10:51       ` Stanislaw Gruszka
     [not found]         ` <CAHJ2optb4E2r6W2w21oswptZh=_Q9kB+RbQ=F0TWg9zHGjXwZA@mail.gmail.com>
2011-11-23 14:40           ` Stanislaw Gruszka
2011-11-23 14:45             ` Luis Correia
     [not found]         ` <CAN6fvj2=EhimZUy-DKtpzAKq1mpvBt03KtX9vCi0dBTCXWVsRg@mail.gmail.com>
2011-11-23 15:14           ` Stanislaw Gruszka
2011-11-23 15:44             ` Stanislaw Gruszka
2011-11-23 17:00             ` Stanislaw Gruszka
2011-11-23 20:47         ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).