From owner-freebsd-scsi Fri Aug 1 05:14:51 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id FAA16827 for freebsd-scsi-outgoing; Fri, 1 Aug 1997 05:14:51 -0700 (PDT) Received: from hda.hda.com (hda-bicnet.bicnet.net [208.220.66.37]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id FAA16822 for ; Fri, 1 Aug 1997 05:14:48 -0700 (PDT) Received: (from dufault@localhost) by hda.hda.com (8.8.5/8.8.5) id GAA06673; Fri, 1 Aug 1997 06:56:52 -0400 (EDT) From: Peter Dufault Message-Id: <199708011056.GAA06673@hda.hda.com> Subject: Re: NOT READY In-Reply-To: <199708011106.EAA27735@silvia.HIP.Berkeley.EDU> from Satoshi Asami at "Aug 1, 97 04:06:17 am" To: asami@cs.berkeley.edu (Satoshi Asami) Date: Fri, 1 Aug 1997 06:56:52 -0400 (EDT) Cc: scsi@freebsd.org X-Mailer: ELM [version 2.4ME+ PL25 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > Something like this? > > === > Index: sd.c > =================================================================== > RCS file: /usr/cvs/src/sys/scsi/sd.c,v > retrieving revision 1.95.2.2 > diff -u -r1.95.2.2 sd.c > --- sd.c 1997/02/05 19:02:22 1.95.2.2 > +++ sd.c 1997/08/01 08:54:18 > @@ -853,6 +853,13 @@ > if (inqbuf->dev_qual2 & SID_REMOVABLE) > return SCSIRET_CONTINUE; > > + /* Restart if drive says not ready. > + */ > + if ((sense->error_code & SSD_ERRCODE_VALID) == 0x2) { > + scsi_start_unit(sc_link, SCSI_ERR_OK | SCSI_SILENT); > + return SCSIRET_CONTINUE; > + } > + > /* Retry all disk errors. > */ > scsi_sense_print(xs); > === > > (I haven't tried it yet...it's kinda scary. ;) Something like that - I think you want to return SCSIRET_DO_RETRY and not SCSIRET_CONTINUE, and you may need to delay in there somehow because it is going to take a while to spin up. Peter -- Peter Dufault (dufault@hda.com) Realtime development, Machine control, HD Associates, Inc. Safety critical systems, Agency approval