public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] [SCSI] sym53c8xx: fix "irq X: nobody cared" regression in 2.6.24
@ 2007-12-14 20:45 Tony Battersby
  2007-12-14 21:07 ` Matthew Wilcox
  0 siblings, 1 reply; 2+ messages in thread
From: Tony Battersby @ 2007-12-14 20:45 UTC (permalink / raw)
  To: Matthew Wilcox, James Bottomley, linux-scsi

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 <matthew@wil.cx>
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.

Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
---

James, please queue for scsi-rc-fixes-2.6.  Thanks!

--- linux-2.6.24-rc5-git3/drivers/scsi/sym53c8xx_2/sym_hipd.c.orig	2007-12-14 15:07:09.000000000 -0500
+++ linux-2.6.24-rc5-git3/drivers/scsi/sym53c8xx_2/sym_hipd.c	2007-12-14 15:07:31.000000000 -0500
@@ -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);
 	}



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

* Re: [PATCH] [SCSI] sym53c8xx: fix "irq X: nobody cared" regression in 2.6.24
  2007-12-14 20:45 [PATCH] [SCSI] sym53c8xx: fix "irq X: nobody cared" regression in 2.6.24 Tony Battersby
@ 2007-12-14 21:07 ` Matthew Wilcox
  0 siblings, 0 replies; 2+ messages in thread
From: Matthew Wilcox @ 2007-12-14 21:07 UTC (permalink / raw)
  To: Tony Battersby; +Cc: James Bottomley, linux-scsi

On Fri, Dec 14, 2007 at 03:45:16PM -0500, Tony Battersby wrote:
> 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.
> 
> Signed-off-by: Tony Battersby <tonyb@cybernetics.com>

Acked-by: Matthew Wilcox <willy@linux.intel.com>

-- 
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."

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

end of thread, other threads:[~2007-12-14 21:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-14 20:45 [PATCH] [SCSI] sym53c8xx: fix "irq X: nobody cared" regression in 2.6.24 Tony Battersby
2007-12-14 21:07 ` Matthew Wilcox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox