[65] in linux-scsi channel archive

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

Adaptec 1542CF

daemon@ATHENA.MIT.EDU (Nick Kralevich)
Sun Feb 5 07:24:41 1995

Date: Sun, 5 Feb 1995 03:42:14 -0800 (PST)
From: Nick Kralevich <nickkral@po.EECS.Berkeley.EDU>
To: linux-scsi@vger.rutgers.edu


I'm having problems with my Adaptec 1542CF SCSI controller card.
I believe it is a bug in the driver, or in the SCSI code,
and I'm trying to find that bug.

I am currently using 1.1.81, which is rock solid stable on my
computer.  I upgraded to 1.1.88, and was quickly able to generate
several "aha1542.c: Interrupt received, but no mail." messsages.
I did this by accessing multiple drives at one time, reading
from one drive and writing to the other.  

Right now I am in the process of going through all the kernel versions
from 1.1.81 to 1.1.88, and trying to see when the code broke.

So here are my questions:

1)  In patch82, the following code was written:

----- Begin -----
 /* A "high" level interrupt handler */
-static void aha1542_intr_handle(int foo)
+static void aha1542_intr_handle(int irq, struct pt_regs *regs)
 {
     void (*my_done)(Scsi_Cmnd *) = NULL;
     int errstatus, mbi, mbo, mbistatus;
@@ -353,16 +353,12 @@
     unsigned int flags;
     struct Scsi_Host * shost;
     Scsi_Cmnd * SCtmp;
-    int irqno, * irqp, flag;
+    int flag;
     int needs_restart;
     struct mailbox * mb;
     struct ccb  *ccb;

-    irqp = (int *) foo;
-    irqp -= 2;  /* Magic - this is only required for slow interrupt 
handlers */-    irqno = *irqp;
-
-    shost = aha_host[irqno - 9];
+    shost = aha_host[irq - 9];
     if(!shost) panic("Splunge!");
----- End -----

I am particularly interested in the "irqp -= 2" line, required for
slow interrupt handlers.  Why was this line removed?  What was
the original reason for decrementing the pointer by two in the 
first place?

I believe that part of my problem is because I have an older SCSI
drive, which may be slower than the modern drives.  I also have
a slower computer.  Should either of those be a factor in the problem?

Second question:  What is the best/proper way to debug the AHA1542?
I uncommented the line in arch/i386/config.in that said:

bool 'SCSI debugging host adapter' CONFIG_SCSI_DEBUG n

Is that sufficient, or is there more I need to do?

Oh, by the way, I'm new to this list, so if this has already been
discussed, please forgive me.

Thanks,
-- Nick Kralevich
   nickkral@cory.eecs.berkeley.edu
 

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