Date: Mon, 24 Dec 2007 19:04:29 +0200 From: Andriy Gapon <avg@icyb.net.ua> To: freebsd-stable@freebsd.org, freebsd-scsi@freebsd.org Cc: Jeremy Messenger <mezz7@cox.net> Subject: Re: reduce verboseness for certain scsi error Message-ID: <476FE69D.3040709@icyb.net.ua> In-Reply-To: <476BBCD6.2070804@icyb.net.ua> References: <476BBCD6.2070804@icyb.net.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Attached is a proposed patch.
I am not particularly fond of the names. I am also not sure if the same
effect could be achieved by some better means.
The patch works for me and greatly reduces messages pollution when using
a multi-slot card-reader and hald.
P.S. the patch is against sources of 6.2 release.
--
Andriy Gapon
[-- Attachment #2 --]
--- sys/cam/scsi/scsi_all.h.orig Fri Dec 21 17:52:50 2007
+++ sys/cam/scsi/scsi_all.h Fri Dec 21 17:57:29 2007
@@ -90,6 +90,7 @@ typedef enum {
* and text.
*/
SSQ_PRINT_SENSE = 0x0800,
+ SSQ_PRINT_SENSE_VERBOSE = 0x1000,
SSQ_MASK = 0xff00
} scsi_sense_action_qualifier;
@@ -104,6 +105,12 @@ typedef enum {
/* Fatal error action, with table specified error code */
#define SS_FATAL SS_FAIL|SSQ_PRINT_SENSE
+
+/* Fatal error action, with table specified error code */
+/* This type of error doesn't imply malfunction of hardware and
+ * and indicates conditions that can occur in "normal" circumstances
+ */
+#define SS_FATAL_NORMAL SS_FAIL|SSQ_PRINT_SENSE_VERBOSE
struct scsi_generic
{
--- sys/cam/scsi/scsi_all.c.orig Fri Dec 21 17:54:50 2007
+++ sys/cam/scsi/scsi_all.c Fri Dec 21 17:55:52 2007
@@ -1197,7 +1197,7 @@ static struct asc_table_entry asc_table[
"Rounded parameter") },
/* DTL WRSOMCAE */{SST(0x39, 0x00, SS_RDEF,
"Saving parameters not supported") },
-/* DTL WRSOM */{SST(0x3A, 0x00, SS_FATAL|ENXIO,
+/* DTL WRSOM */{SST(0x3A, 0x00, SS_FATAL_NORMAL|ENXIO,
"Medium not present") },
/* DT WR OM */{SST(0x3A, 0x01, SS_FATAL|ENXIO,
"Medium not present - tray closed") },
@@ -1395,7 +1395,7 @@ static struct asc_table_entry asc_table[
"End of user area encountered on this track") },
/* R */{SST(0x63, 0x01, SS_FATAL|ENOSPC,
"Packet does not fit in available space") },
-/* R */{SST(0x64, 0x00, SS_FATAL|ENXIO,
+/* R */{SST(0x64, 0x00, SS_FATAL_NORMAL|ENXIO,
"Illegal mode for this track") },
/* R */{SST(0x64, 0x01, SS_RDEF,
"Invalid packet size") },
--- sys/cam/cam_periph.c.orig Fri Dec 21 17:57:53 2007
+++ sys/cam/cam_periph.c Fri Dec 21 18:00:13 2007
@@ -1515,7 +1515,8 @@ camperiphscsisenseerror(union ccb *ccb,
}
sense_error_done:
- if ((err_action & SSQ_PRINT_SENSE) != 0
+ if (((err_action & SSQ_PRINT_SENSE) != 0
+ || ((err_action & SSQ_PRINT_SENSE_VERBOSE) != 0 && bootverbose))
&& (ccb->ccb_h.status & CAM_AUTOSNS_VALID) != 0) {
cam_error_print(print_ccb, CAM_ESF_ALL, CAM_EPF_ALL);
xpt_print_path(ccb->ccb_h.path);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?476FE69D.3040709>
