diff options
author | Warner Losh <imp@FreeBSD.org> | 2025-02-04 18:28:54 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2025-02-04 18:29:38 +0000 |
commit | 692e5f6ba63e5efe0b3c0a7b9ee6fb255302b000 (patch) | |
tree | 595b719e878d0cf1b11a24af1ffaff8f8cd509f0 | |
parent | f5cebe73940cb77df71438fd0aa4876af881a7d6 (diff) |
cam: Fail ASC 0x40
ASC 0x40 is use to report diagnostics (as in the self test the drive
runs on itself) failures. The ASCQ code is the part that failed. These
failures are such that I/O to the drive's LBA range is not possible, so
make this condition fatal, and signal the drive's ill health.
Sponsored by: Netflix
Reviewed by: ken, mav
Differential Revision: https://reviews.freebsd.org/D48684
-rw-r--r-- | sys/cam/scsi/scsi_all.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/cam/scsi/scsi_all.c b/sys/cam/scsi/scsi_all.c index 0f31757cae25..6fbcb1fd80fe 100644 --- a/sys/cam/scsi/scsi_all.c +++ b/sys/cam/scsi/scsi_all.c @@ -2394,10 +2394,10 @@ static struct asc_table_entry asc_table[] = { /* D */ { SST(0x3F, 0x1A, SS_RDEF, /* XXX TBD */ "Subsidiary binding changed") }, - { SST(0x40, 0x00, SS_RDEF, + { SST(0x40, 0x00, SS_FATAL | ENXIO, "RAM failure") }, /* deprecated - use 40 NN instead */ /* DTLPWROMAEBKVF */ - { SST(0x40, 0x80, SS_RDEF, + { SST(0x40, 0x80, SS_FATAL | ENXIO, "Diagnostic failure: ASCQ = Component ID") }, /* DTLPWROMAEBKVF */ { SST(0x40, 0xFF, SS_RDEF | SSQ_RANGE, |