[6881] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

re: Oops in 2.2.10 with AHA-2940U2W SCSI, Yamaha 4416s CDRW

daemon@ATHENA.MIT.EDU (Tim Ricketts)
Fri Jul 23 14:32:15 1999

Date:   Fri, 23 Jul 1999 15:34:51 +0100 (GMT)
From: Tim Ricketts <tr@oxlug.org>
To: frogstar@earthling.net
cc: linux-kernel@vger.rutgers.edu, linux-scsi@vger.rutgers.edu
In-Reply-To: <Pine.SOL.4.10.9907201246360.22141-100000@geranium.css.sfu.ca>

On Tue, 20 Jul 1999, Benjamin Lewis wrote:

> (gdb) l *0xc01c6fc3
> 0xc01c6fc3 is in aic7xxx_handle_scsiint (aic7xxx.c:6197).
> 6192             * we get a reset since this abort just failed.
> 6193             */
> 6194            cmd->result = 0;
> 6195            scb = NULL;

Seeing as we've already checked scb isn't NULL, my guess is that the line
above is getting executed.

> 6196          }
> 6197          if (scb->cmd == p->dev_dtr_cmnd[TARGET_INDEX(scb->cmd)])

So this oopses.  Will this solve the problem?  It certainly can't cause
any more problems:

diff -urN linux-2.2.10/drivers/scsi/aic7xxx.c linux/drivers/scsi/aic7xxx.c
--- linux-2.2.10/drivers/scsi/aic7xxx.c	Mon Jun 14 12:31:01 1999
+++ linux/drivers/scsi/aic7xxx.c	Fri Jul 23 15:30:52 1999
@@ -6194,7 +6194,7 @@
         cmd->result = 0;
         scb = NULL;
       }
-      if (scb->cmd == p->dev_dtr_cmnd[TARGET_INDEX(scb->cmd)])
+      else if (scb->cmd == p->dev_dtr_cmnd[TARGET_INDEX(scb->cmd)])
       {
         /*
          * Turn off the needsdtr, needwdtr, and needppr bits since this device

-- 
Tim
Quidquid latine dictum sit, altum viditur.


-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.rutgers.edu

home help back first fref pref prev next nref lref last post