diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/scsi/scsi_base.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/sys/scsi/scsi_base.c b/sys/scsi/scsi_base.c index e51e6489e0b..75a9a07ce00 100644 --- a/sys/scsi/scsi_base.c +++ b/sys/scsi/scsi_base.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scsi_base.c,v 1.165 2010/01/15 05:50:31 krw Exp $ */ +/* $OpenBSD: scsi_base.c,v 1.166 2010/01/15 06:27:12 krw Exp $ */ /* $NetBSD: scsi_base.c,v 1.43 1997/04/02 02:29:36 mycroft Exp $ */ /* @@ -993,20 +993,9 @@ scsi_interpret_sense(struct scsi_xfer *xs) #ifdef SCSIDEBUG if (xs->sc_link->flags & SDEV_DB1) scsi_show_mem((u_char *)&xs->sense, sizeof(xs->sense)); + scsi_print_sense(xs); #endif /* SCSIDEBUG */ - serr = sense->error_code & SSD_ERRCODE; - if (serr != SSD_ERRCODE_CURRENT && serr != SSD_ERRCODE_DEFERRED) - skey = 0xff; /* Invalid value, since key is 4 bit value. */ - else - skey = sense->flags & SSD_KEY; - -#ifndef SCSIDEBUG - /* If not SCSIDEBUG, only print sense in some cases. */ - if (skey && (xs->flags & SCSI_SILENT) == 0) -#endif /* SCSIDEBUG */ - scsi_print_sense(xs); - /* * If the device has its own error handler, call it first. * If it returns a legit error value, return that, otherwise @@ -1020,9 +1009,14 @@ scsi_interpret_sense(struct scsi_xfer *xs) return (error); /* error >= 0 better ? */ } + /* Default sense interpretation. */ + serr = sense->error_code & SSD_ERRCODE; + if (serr != SSD_ERRCODE_CURRENT && serr != SSD_ERRCODE_DEFERRED) + skey = 0xff; /* Invalid value, since key is 4 bit value. */ + else + skey = sense->flags & SSD_KEY; + /* - * Default sense interpretation. - * * Interpret the key/asc/ascq information where appropriate. */ error = 0; @@ -1139,6 +1133,12 @@ scsi_interpret_sense(struct scsi_xfer *xs) break; } +#ifndef SCSIDEBUG + /* SCSIDEBUG would mean it has already been printed. */ + if (skey && (xs->flags & SCSI_SILENT) == 0) + scsi_print_sense(xs); +#endif /* SCSIDEBUG */ + return (error); } |