From owner-freebsd-scsi Mon Aug 4 20:03:24 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id UAA14568 for freebsd-scsi-outgoing; Mon, 4 Aug 1997 20:03:24 -0700 (PDT) Received: from silvia.HIP.Berkeley.EDU (ala-ca8-36.ix.netcom.com [207.93.141.164]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id UAA14549 for ; Mon, 4 Aug 1997 20:03:19 -0700 (PDT) Received: (from asami@localhost) by silvia.HIP.Berkeley.EDU (8.8.6/8.6.9) id UAA21425; Mon, 4 Aug 1997 20:02:56 -0700 (PDT) Date: Mon, 4 Aug 1997 20:02:56 -0700 (PDT) Message-Id: <199708050302.UAA21425@silvia.HIP.Berkeley.EDU> To: dufault@hda.com CC: scsi@freebsd.org In-reply-to: <199708011056.GAA06673@hda.hda.com> (message from Peter Dufault on Fri, 1 Aug 1997 06:56:52 -0400 (EDT)) Subject: Re: NOT READY From: asami@cs.berkeley.edu (Satoshi Asami) Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk * 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. Ok, here's another one. === 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/04 22:26:13 @@ -855,7 +855,17 @@ /* Retry all disk errors. */ + scsi_sense_print(xs); + /* Try to restart if drive says not ready. + */ + if ((sense->error_code & SSD_ERRCODE_VALID) == 0x2) { + scsi_start_unit(xs->sc_link, SCSI_ERR_OK | SCSI_SILENT); + DELAY(5000000); + printf(", sent start unit command\n"); + return SCSIRET_DO_RETRY; + } + if (xs->retries) printf(", retries:%d\n", xs->retries); else === I've been running the machines with the above patch since this afternoon. I'll let you know if I see my message in the log. Satoshi