sym53c8xx: fix "irq X: nobody cared" regression in 2.6.24
PATCH 1/1 sym53c8xx: fix "irq X: nobody cared" regression in 2.6.24
The patch described by the following excerpt from ChangeLog-2.6.24-rc1 eventually causes a "irq X: nobody cared" error after a while:
commit 99c9e0a1d6cfe1ba1169a7a81435ee85bc00e4a1
Author: Matthew Wilcox <[email protected]> Date: Fri Oct 5 15:55:12 2007 -0400
[SCSI] sym53c8xx: Make interrupt handler capable of returning IRQ_NONE
After this happens, the kernel disables the IRQ, causing the SCSI card to stop working until the next reboot. The problem is caused by the interrupt handler returning IRQ_NONE instead of IRQ_HANDLED after handling an interrupt-on-the-fly (INTF) condition. The following patch fixes the problem.
---
James, please queue for scsi-rc-fixes-2.6. Thanks!
drivers/scsi/sym53c8xx_2/sym_hipd.c renamed from drivers/scsi/sym53c8xx_2/sym_hipd.c.orig +1 -1
@@ -2791,7 +2791,7 @@ irqreturn_t sym_interrupt(struct Scsi_Ho istat =INB (np, nc_istat);if (istat &INTF ) {OUTB (np, nc_istat, (istat &SIGP ) |INTF | np->istat_sem); - istat =INB (np, nc_istat);/* DUMMY READ */ + istat |=INB (np, nc_istat);/* DUMMY READ */ if (DEBUG_FLAGS &DEBUG_TINY )printf ("F " );sym_wakeup_done (np); }
Quoted 7 lines · Tony Battersby
After this happens, the kernel disables the IRQ, causing the SCSI card to stop working until the next reboot. The problem is caused by the interrupt handler returning
IRQ_NONEinstead ofIRQ_HANDLEDafter handling an interrupt-on-the-fly (INTF) condition. The following patch fixes the problem.Signed-off-by Tony Battersby <[email protected]>
Signature · 4 lines
Intel are signing my paycheques ... these opinions are still mine "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step."