Skip site navigation (1)Skip section navigation (2)
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
This is a multi-part message in MIME format.
--------------060205080807050008050802
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit


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

--------------060205080807050008050802
Content-Type: text/x-patch;
 name="verboseness.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="verboseness.diff"

--- 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);

--------------060205080807050008050802--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?476FE69D.3040709>