aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2025-02-04 18:28:54 +0000
committerWarner Losh <imp@FreeBSD.org>2025-02-04 18:29:38 +0000
commit692e5f6ba63e5efe0b3c0a7b9ee6fb255302b000 (patch)
tree595b719e878d0cf1b11a24af1ffaff8f8cd509f0
parentf5cebe73940cb77df71438fd0aa4876af881a7d6 (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.c4
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,