diff options
author | ken <ken@FreeBSD.org> | 2013-08-27 19:47:03 +0000 |
---|---|---|
committer | ken <ken@FreeBSD.org> | 2013-08-27 19:47:03 +0000 |
commit | 6c5aea24dd45d3738833a1a7eea28c964eb00d66 (patch) | |
tree | dcb3f8b1162098a9450d48a55cb159252b09c9b6 | |
parent | 71c97bf245a6c72a4b719e88a4fdaca4b91a8571 (diff) | |
download | FreeBSD-src-6c5aea24dd45d3738833a1a7eea28c964eb00d66.zip FreeBSD-src-6c5aea24dd45d3738833a1a7eea28c964eb00d66.tar.gz |
If a drive returns ASC/ASCQ 0x04,0x11 "Logical unit not ready,
notify (enable spinup) required", instead of doing the normal
retries, poll for a change in status.
We will poll every half second for a minute for the status to
change.
Hitachi drives (and likely other SAS drives) return that ASC/ASCQ
when they are waiting to spin up. What it means is that they are
waiting for the SAS expander to send them the SAS
NOTIFY (ENABLE SPINUP) primitive.
That primitive is the mechanism expanders/enclosures use to
sequence drive spinup to avoid overloading power supplies.
Sponsored by: Spectra Logic
MFC after: 3 days
-rw-r--r-- | sys/cam/scsi/scsi_all.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/cam/scsi/scsi_all.c b/sys/cam/scsi/scsi_all.c index 324dc9a..6530266 100644 --- a/sys/cam/scsi/scsi_all.c +++ b/sys/cam/scsi/scsi_all.c @@ -1118,7 +1118,7 @@ static struct asc_table_entry asc_table[] = { { SST(0x04, 0x10, SS_RDEF, /* XXX TBD */ "Logical unit not ready, auxiliary memory not accessible") }, /* DT WRO AEB VF */ - { SST(0x04, 0x11, SS_RDEF, /* XXX TBD */ + { SST(0x04, 0x11, SS_TUR | SSQ_MANY | SSQ_DECREMENT_COUNT | EBUSY, "Logical unit not ready, notify (enable spinup) required") }, /* M V */ { SST(0x04, 0x12, SS_RDEF, /* XXX TBD */ |