aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@steeleye.com>2007-09-23 10:08:46 -0400
committerJames Bottomley <jejb@mulgrave.localdomain>2007-10-12 14:51:56 -0400
commit311b581e1d87be87f78e6e17fc50f468f2dec561 (patch)
tree22ebbc79dd9f028875cf158531ed10b081020699
parent12a441622b753684cc73d1c6f225e9ac53e0bf77 (diff)
[SCSI] Fix device not ready printk
Because scsi_print_sense_hdr prefixes with KERN_INFO, the output from scsi_io_completion looks like: sd 0:0:0:0: [sdb] Device not ready: <6>: Sense Key : 0x2 [current] : ASC=0x4 ASCQ=0x3 By using scsi_show_sense_hdr, we can get the much more appealing output: sd 0:0:0:0: [sdb] Device not ready: Sense Key : 0x2 [current] sd 0:0:0:0: [sdb] Device not ready: ASC=0x4 ASCQ=0x3 Acked-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r--drivers/scsi/constants.c14
-rw-r--r--drivers/scsi/scsi_lib.c10
-rw-r--r--include/scsi/scsi_dbg.h2
3 files changed, 21 insertions, 5 deletions
diff --git a/drivers/scsi/constants.c b/drivers/scsi/constants.c
index 7bdeed1c5a56..024553f9c247 100644
--- a/drivers/scsi/constants.c
+++ b/drivers/scsi/constants.c
@@ -1235,6 +1235,20 @@ scsi_print_sense_hdr(const char *name, struct scsi_sense_hdr *sshdr)
1235} 1235}
1236EXPORT_SYMBOL(scsi_print_sense_hdr); 1236EXPORT_SYMBOL(scsi_print_sense_hdr);
1237 1237
1238/*
1239 * Print normalized SCSI sense header with device information and a prefix.
1240 */
1241void
1242scsi_cmd_print_sense_hdr(struct scsi_cmnd *scmd, const char *desc,
1243 struct scsi_sense_hdr *sshdr)
1244{
1245 scmd_printk(KERN_INFO, scmd, "%s: ", desc);
1246 scsi_show_sense_hdr(sshdr);
1247 scmd_printk(KERN_INFO, scmd, "%s: ", desc);
1248 scsi_show_extd_sense(sshdr->asc, sshdr->ascq);
1249}
1250EXPORT_SYMBOL(scsi_cmd_print_sense_hdr);
1251
1238static void 1252static void
1239scsi_decode_sense_buffer(const unsigned char *sense_buffer, int sense_len, 1253scsi_decode_sense_buffer(const unsigned char *sense_buffer, int sense_len,
1240 struct scsi_sense_hdr *sshdr) 1254 struct scsi_sense_hdr *sshdr)
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 94d82cb96626..86fd3abe731a 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -944,11 +944,11 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
944 break; 944 break;
945 } 945 }
946 } 946 }
947 if (!(req->cmd_flags & REQ_QUIET)) { 947 if (!(req->cmd_flags & REQ_QUIET))
948 scmd_printk(KERN_INFO, cmd, 948 scsi_cmd_print_sense_hdr(cmd,
949 "Device not ready: "); 949 "Device not ready",
950 scsi_print_sense_hdr("", &sshdr); 950 &sshdr);
951 } 951
952 scsi_end_request(cmd, 0, this_count, 1); 952 scsi_end_request(cmd, 0, this_count, 1);
953 return; 953 return;
954 case VOLUME_OVERFLOW: 954 case VOLUME_OVERFLOW:
diff --git a/include/scsi/scsi_dbg.h b/include/scsi/scsi_dbg.h
index 5a43a4cd96c6..e89844cc2cd3 100644
--- a/include/scsi/scsi_dbg.h
+++ b/include/scsi/scsi_dbg.h
@@ -9,6 +9,8 @@ extern void __scsi_print_command(unsigned char *);
9extern void scsi_show_extd_sense(unsigned char, unsigned char); 9extern void scsi_show_extd_sense(unsigned char, unsigned char);
10extern void scsi_show_sense_hdr(struct scsi_sense_hdr *); 10extern void scsi_show_sense_hdr(struct scsi_sense_hdr *);
11extern void scsi_print_sense_hdr(const char *, struct scsi_sense_hdr *); 11extern void scsi_print_sense_hdr(const char *, struct scsi_sense_hdr *);
12extern void scsi_cmd_print_sense_hdr(struct scsi_cmnd *, const char *,
13 struct scsi_sense_hdr *);
12extern void scsi_print_sense(char *, struct scsi_cmnd *); 14extern void scsi_print_sense(char *, struct scsi_cmnd *);
13extern void __scsi_print_sense(const char *name, 15extern void __scsi_print_sense(const char *name,
14 const unsigned char *sense_buffer, 16 const unsigned char *sense_buffer,