From: Hannes Reinecke <hare@suse.de>
To: James Bottomley <jbottomley@parallels.com>
Cc: Ewan Milne <emilne@redhat.com>,
Christoph Hellwig <hch@infradead.org>,
linux-scsi@vger.kernel.org, Robert Elliot <elliot@hp.com>,
Yoshihiro Yunomae <yoshihiro.ynomae.ez@hitachi.com>,
Hannes Reinecke <hare@suse.de>
Subject: [PATCH 10/22] scsi: consolidate scsi_print_status()
Date: Thu, 28 Aug 2014 19:33:24 +0200 [thread overview]
Message-ID: <1409247216-76074-11-git-send-email-hare@suse.de> (raw)
In-Reply-To: <1409247216-76074-1-git-send-email-hare@suse.de>
Update scsi_print_status() to return a const string and remove
the open-coded versions.
Signed-off-by: Hannes Reinecke <hare@suse.de>
---
drivers/scsi/aha152x.c | 7 ++----
drivers/scsi/constants.c | 50 ++++++++++++++++++++++++-------------------
include/scsi/scsi_dbg.h | 2 +-
include/trace/events/scsi.h | 17 +--------------
include/trace/events/target.h | 17 ++-------------
5 files changed, 34 insertions(+), 59 deletions(-)
diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index 4da3a3b..4287f86 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -2130,11 +2130,8 @@ static void status_run(struct Scsi_Host *shpnt)
CURRENT_SC->SCp.Status = GETPORT(SCSIDAT);
#if defined(AHA152X_DEBUG)
- if (HOSTDATA(shpnt)->debug & debug_status) {
- printk(DEBUG_LEAD "inbound status %02x ", CMDINFO(CURRENT_SC), CURRENT_SC->SCp.Status);
- scsi_print_status(CURRENT_SC->SCp.Status);
- printk("\n");
- }
+ if (HOSTDATA(shpnt)->debug & debug_status)
+ printk(DEBUG_LEAD "inbound status %02x\n", CMDINFO(CURRENT_SC), CURRENT_SC->SCp.Status);
#endif
}
diff --git a/drivers/scsi/constants.c b/drivers/scsi/constants.c
index c0d7b3d..323e944 100644
--- a/drivers/scsi/constants.c
+++ b/drivers/scsi/constants.c
@@ -437,34 +437,40 @@ EXPORT_SYMBOL(scsi_print_command);
* scsi_print_status - print scsi status description
* @scsi_status: scsi status value
*
- * If the status is recognized, the description is printed.
- * Otherwise "Unknown status" is output. No trailing space.
- * If CONFIG_SCSI_CONSTANTS is not set, then print status in hex
- * (e.g. "0x2" for Check Condition).
+ * If the status is recognized, the description is returned.
+ * Otherwise "Unknown status" is returned.
**/
-void
+const char *
scsi_print_status(unsigned char scsi_status) {
-#ifdef CONFIG_SCSI_CONSTANTS
const char * ccp;
switch (scsi_status) {
- case 0: ccp = "Good"; break;
- case 0x2: ccp = "Check Condition"; break;
- case 0x4: ccp = "Condition Met"; break;
- case 0x8: ccp = "Busy"; break;
- case 0x10: ccp = "Intermediate"; break;
- case 0x14: ccp = "Intermediate-Condition Met"; break;
- case 0x18: ccp = "Reservation Conflict"; break;
- case 0x22: ccp = "Command Terminated"; break; /* obsolete */
- case 0x28: ccp = "Task set Full"; break; /* was: Queue Full */
- case 0x30: ccp = "ACA Active"; break;
- case 0x40: ccp = "Task Aborted"; break;
- default: ccp = "Unknown status";
+ case SAM_STAT_GOOD:
+ ccp = "Good"; break;
+ case SAM_STAT_CHECK_CONDITION:
+ ccp = "Check Condition"; break;
+ case SAM_STAT_CONDITION_MET:
+ ccp = "Condition Met"; break;
+ case SAM_STAT_BUSY:
+ ccp = "Busy"; break;
+ case SAM_STAT_INTERMEDIATE:
+ ccp = "Intermediate"; break;
+ case SAM_STAT_INTERMEDIATE_CONDITION_MET:
+ ccp = "Intermediate-Condition Met"; break;
+ case SAM_STAT_RESERVATION_CONFLICT:
+ ccp = "Reservation Conflict"; break;
+ case SAM_STAT_COMMAND_TERMINATED:
+ ccp = "Command Terminated"; break; /* obsolete */
+ case SAM_STAT_TASK_SET_FULL:
+ ccp = "Task set Full"; break; /* was: Queue Full */
+ case SAM_STAT_ACA_ACTIVE:
+ ccp = "ACA Active"; break;
+ case SAM_STAT_TASK_ABORTED:
+ ccp = "Task Aborted"; break;
+ default:
+ ccp = "Unknown status";
}
- printk(KERN_INFO "%s", ccp);
-#else
- printk(KERN_INFO "0x%0x", scsi_status);
-#endif
+ return ccp;
}
EXPORT_SYMBOL(scsi_print_status);
diff --git a/include/scsi/scsi_dbg.h b/include/scsi/scsi_dbg.h
index 3d9ac9f..a46bc55 100644
--- a/include/scsi/scsi_dbg.h
+++ b/include/scsi/scsi_dbg.h
@@ -21,7 +21,7 @@ extern void __scsi_dump_sense(struct scsi_device *, const char *,
const unsigned char *, int);
extern void scsi_show_result(struct scsi_device *, const char *, int);
extern void scsi_print_result(struct scsi_cmnd *);
-extern void scsi_print_status(unsigned char);
+extern const char *scsi_print_status(unsigned char);
extern const char *scsi_sense_key_string(unsigned char);
extern const char *scsi_extd_sense_format(unsigned char, unsigned char,
const char **);
diff --git a/include/trace/events/scsi.h b/include/trace/events/scsi.h
index db6c935..0a6835b 100644
--- a/include/trace/events/scsi.h
+++ b/include/trace/events/scsi.h
@@ -169,21 +169,6 @@
scsi_msgbyte_name(BUS_DEVICE_RESET), \
scsi_msgbyte_name(ABORT))
-#define scsi_statusbyte_name(result) { result, #result }
-#define show_statusbyte_name(val) \
- __print_symbolic(val, \
- scsi_statusbyte_name(SAM_STAT_GOOD), \
- scsi_statusbyte_name(SAM_STAT_CHECK_CONDITION), \
- scsi_statusbyte_name(SAM_STAT_CONDITION_MET), \
- scsi_statusbyte_name(SAM_STAT_BUSY), \
- scsi_statusbyte_name(SAM_STAT_INTERMEDIATE), \
- scsi_statusbyte_name(SAM_STAT_INTERMEDIATE_CONDITION_MET), \
- scsi_statusbyte_name(SAM_STAT_RESERVATION_CONFLICT), \
- scsi_statusbyte_name(SAM_STAT_COMMAND_TERMINATED), \
- scsi_statusbyte_name(SAM_STAT_TASK_SET_FULL), \
- scsi_statusbyte_name(SAM_STAT_ACA_ACTIVE), \
- scsi_statusbyte_name(SAM_STAT_TASK_ABORTED))
-
#define scsi_prot_op_name(result) { result, #result }
#define show_prot_op_name(val) \
__print_symbolic(val, \
@@ -331,7 +316,7 @@ DECLARE_EVENT_CLASS(scsi_cmd_done_timeout_template,
show_driverbyte_name(((__entry->result) >> 24) & 0xff),
show_hostbyte_name(((__entry->result) >> 16) & 0xff),
show_msgbyte_name(((__entry->result) >> 8) & 0xff),
- show_statusbyte_name(__entry->result & 0xff))
+ scsi_print_status(__entry->result & 0xff))
);
DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_done,
diff --git a/include/trace/events/target.h b/include/trace/events/target.h
index da9cc0f..de5d594 100644
--- a/include/trace/events/target.h
+++ b/include/trace/events/target.h
@@ -8,6 +8,7 @@
#include <linux/trace_seq.h>
#include <scsi/scsi.h>
#include <scsi/scsi_tcq.h>
+#include <scsi/scsi_dbg.h>
#include <target/target_core_base.h>
/* cribbed verbatim from <trace/event/scsi.h> */
@@ -114,20 +115,6 @@
{ MSG_ORDERED_TAG, "ORDERED" }, \
{ MSG_ACA_TAG, "ACA" } )
-#define show_scsi_status_name(val) \
- __print_symbolic(val, \
- { SAM_STAT_GOOD, "GOOD" }, \
- { SAM_STAT_CHECK_CONDITION, "CHECK CONDITION" }, \
- { SAM_STAT_CONDITION_MET, "CONDITION MET" }, \
- { SAM_STAT_BUSY, "BUSY" }, \
- { SAM_STAT_INTERMEDIATE, "INTERMEDIATE" }, \
- { SAM_STAT_INTERMEDIATE_CONDITION_MET, "INTERMEDIATE CONDITION MET" }, \
- { SAM_STAT_RESERVATION_CONFLICT, "RESERVATION CONFLICT" }, \
- { SAM_STAT_COMMAND_TERMINATED, "COMMAND TERMINATED" }, \
- { SAM_STAT_TASK_SET_FULL, "TASK SET FULL" }, \
- { SAM_STAT_ACA_ACTIVE, "ACA ACTIVE" }, \
- { SAM_STAT_TASK_ABORTED, "TASK ABORTED" } )
-
TRACE_EVENT(target_sequencer_start,
TP_PROTO(struct se_cmd *cmd),
@@ -196,7 +183,7 @@ TRACE_EVENT(target_cmd_complete,
TP_printk("%s <- LUN %03u status %s (sense len %d%s%s) %s data_length %6u CDB %s (TA:%s C:%02x)",
__get_str(initiator), __entry->unpacked_lun,
- show_scsi_status_name(__entry->scsi_status),
+ scsi_print_status(__entry->scsi_status),
__entry->sense_length, __entry->sense_length ? " / " : "",
__print_hex(__entry->sense_data, __entry->sense_length),
show_opcode_name(__entry->opcode),
--
1.8.5.2
next prev parent reply other threads:[~2014-08-28 17:33 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-28 17:33 [PATCH 00/22] scsi logging update Hannes Reinecke
2014-08-28 17:33 ` [PATCH 01/22] Remove scsi_cmd_print_sense_hdr() Hannes Reinecke
2014-08-31 21:39 ` Christoph Hellwig
2014-08-28 17:33 ` [PATCH 02/22] aha152x: Remove #ifdef 0 section Hannes Reinecke
2014-08-31 21:40 ` Christoph Hellwig
2014-08-28 17:33 ` [PATCH 03/22] sd: Remove scsi_print_sense() in sd_done() Hannes Reinecke
2014-08-31 21:40 ` Christoph Hellwig
2014-08-28 17:33 ` [PATCH 04/22] scsi: introduce sdev_prefix_printk() Hannes Reinecke
2014-08-31 21:43 ` Christoph Hellwig
2014-09-01 7:54 ` Hannes Reinecke
2014-08-28 17:33 ` [PATCH 05/22] scsi: Use sdev as argument for sense code printing Hannes Reinecke
2014-08-31 21:55 ` Christoph Hellwig
2014-09-01 8:00 ` Hannes Reinecke
2014-08-28 17:33 ` [PATCH 06/22] scsi: stop decoding if scsi_normalize_sense() fails Hannes Reinecke
2014-08-31 22:00 ` Christoph Hellwig
2014-09-01 8:06 ` Hannes Reinecke
2014-08-28 17:33 ` [PATCH 07/22] scsi: do not decode sense extras Hannes Reinecke
2014-08-31 22:06 ` Christoph Hellwig
2014-09-01 8:10 ` Hannes Reinecke
2014-08-28 17:33 ` [PATCH 08/22] scsi: dump sense buffer only for debugging Hannes Reinecke
2014-08-31 22:09 ` Christoph Hellwig
2014-09-01 8:26 ` Hannes Reinecke
2014-08-28 17:33 ` [PATCH 09/22] Use sdev as argument for scsi_print_result Hannes Reinecke
2014-08-31 22:11 ` Christoph Hellwig
2014-09-01 8:43 ` Hannes Reinecke
2014-08-28 17:33 ` Hannes Reinecke [this message]
2014-08-31 22:14 ` [PATCH 10/22] scsi: consolidate scsi_print_status() Christoph Hellwig
2014-09-01 8:46 ` Hannes Reinecke
2014-08-28 17:33 ` [PATCH 11/22] Implement scsi_opcode_sa_name Hannes Reinecke
2014-08-28 23:50 ` Douglas Gilbert
2014-08-31 22:16 ` Christoph Hellwig
2014-08-28 17:33 ` [PATCH 12/22] scsi: remove obsolete __scsi_print_command() usages Hannes Reinecke
2014-08-31 22:18 ` Christoph Hellwig
2014-09-01 6:56 ` Hannes Reinecke
2014-08-28 17:33 ` [PATCH 13/22] scsi: use local buffer for printing the opcode Hannes Reinecke
2014-08-31 22:19 ` Christoph Hellwig
2014-09-01 8:57 ` Hannes Reinecke
2014-09-01 14:42 ` Hannes Reinecke
2014-08-28 17:33 ` [PATCH 14/22] scsi: pass in string buffer to __scsi_print_command() Hannes Reinecke
2014-08-28 17:33 ` [PATCH 15/22] scsi: use dev_printk() variants in scsi_print_command() Hannes Reinecke
2014-08-28 17:33 ` [PATCH 16/22] libata: use __scsi_print_command() Hannes Reinecke
2014-08-28 17:33 ` [PATCH 17/22] scsi: print disposition in scsi_print_result() Hannes Reinecke
2014-08-31 22:23 ` Christoph Hellwig
2014-08-28 17:33 ` [PATCH 18/22] scsi_error: format abort error message Hannes Reinecke
2014-08-31 22:25 ` Christoph Hellwig
2014-08-28 17:33 ` [PATCH 19/22] scsi: use local buffer for scsi_log_(send|completion) Hannes Reinecke
2014-08-28 17:33 ` [PATCH 20/22] scsi: align logging messages Hannes Reinecke
2014-08-31 22:25 ` Christoph Hellwig
2014-09-01 1:00 ` Elliott, Robert (Server Storage)
2014-09-06 0:34 ` Christoph Hellwig
2014-09-18 23:58 ` Elliott, Robert (Server Storage)
2014-09-19 6:26 ` Hannes Reinecke
2014-09-19 11:35 ` Christoph Hellwig
2014-09-19 11:56 ` Hannes Reinecke
2014-08-28 17:33 ` [PATCH 21/22] scsi: reduce messages for command failure Hannes Reinecke
2014-08-31 22:28 ` Christoph Hellwig
2014-09-01 1:14 ` Elliott, Robert (Server Storage)
2014-09-06 0:35 ` Christoph Hellwig
2014-08-28 17:33 ` [PATCH 22/22] sd: Reduce logging output Hannes Reinecke
2014-08-31 22:29 ` Christoph Hellwig
2014-09-03 7:58 ` Hannes Reinecke
2014-08-28 19:24 ` [PATCH 00/22] scsi logging update Douglas Gilbert
2014-08-29 9:48 ` Hannes Reinecke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1409247216-76074-11-git-send-email-hare@suse.de \
--to=hare@suse.de \
--cc=elliot@hp.com \
--cc=emilne@redhat.com \
--cc=hch@infradead.org \
--cc=jbottomley@parallels.com \
--cc=linux-scsi@vger.kernel.org \
--cc=yoshihiro.ynomae.ez@hitachi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox