Subject: Re: hard drive on PWS433au -'disconnects'
To: mel kravitz <melk@switchpwr.com>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-alpha
Date: 05/17/2002 19:55:28
--8t9RHnE3ZwKMSgU+
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Thu, May 16, 2002 at 04:24:13PM -0400, mel kravitz wrote:
> Hi,
> On one of my PWS433au boxes running current (4/29) i am getting after
> running for
> a few min...sd0(isp0:0:0:0): ..invalid return code from adapter:3
> after several log messages the drive  effectively 'disconnects' from the
> system
> and no keyboard input works. I added a siop0 card, changed hard drive
> etc...same
> message. Anyone seen this ? Is this terminal  for the box-> dumpster
> time?

Hum, code 3 is "XS_DRIVER_STUFFUP". If no other message from siop0 is printed,
then it's because the drive returned an invalid status.

Can you recompile a kernel with the attached patch ? The siop driver should
give more details about what's going on.

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
--

--8t9RHnE3ZwKMSgU+
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=diff

Index: esiop.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/ic/esiop.c,v
retrieving revision 1.13
diff -u -r1.13 esiop.c
--- esiop.c	2002/04/29 15:44:16	1.13
+++ esiop.c	2002/05/17 17:55:01
@@ -1152,6 +1152,8 @@
 		xs->error = XS_SELTIMEOUT;
 		break;
 	default:
+		scsipi_printaddr(xs->xs_periph);
+		printf("invalid status code %d\n", xs->status);
 		xs->error = XS_DRIVER_STUFFUP;
 	}
 	if (xs->xs_control & (XS_CTL_DATA_IN | XS_CTL_DATA_OUT)) {
Index: siop.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/ic/siop.c,v
retrieving revision 1.60
diff -u -r1.60 siop.c
--- siop.c	2002/04/25 20:05:10	1.60
+++ siop.c	2002/05/17 17:55:06
@@ -1004,6 +1004,8 @@
 		xs->error = XS_SELTIMEOUT;
 		break;
 	default:
+		scsipi_printaddr(xs->xs_periph);
+		printf("invalid status code %d\n", xs->status);
 		xs->error = XS_DRIVER_STUFFUP;
 	}
 	if (xs->xs_control & (XS_CTL_DATA_IN | XS_CTL_DATA_OUT)) {

--8t9RHnE3ZwKMSgU+--