aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/scsi.c')
-rw-r--r--drivers/scsi/scsi.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 1c08f6164658..ad0ed212db4a 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -67,6 +67,9 @@
67#include "scsi_priv.h" 67#include "scsi_priv.h"
68#include "scsi_logging.h" 68#include "scsi_logging.h"
69 69
70#define CREATE_TRACE_POINTS
71#include <trace/events/scsi.h>
72
70static void scsi_done(struct scsi_cmnd *cmd); 73static void scsi_done(struct scsi_cmnd *cmd);
71 74
72/* 75/*
@@ -747,10 +750,12 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
747 cmd->result = (DID_NO_CONNECT << 16); 750 cmd->result = (DID_NO_CONNECT << 16);
748 scsi_done(cmd); 751 scsi_done(cmd);
749 } else { 752 } else {
753 trace_scsi_dispatch_cmd_start(cmd);
750 rtn = host->hostt->queuecommand(cmd, scsi_done); 754 rtn = host->hostt->queuecommand(cmd, scsi_done);
751 } 755 }
752 spin_unlock_irqrestore(host->host_lock, flags); 756 spin_unlock_irqrestore(host->host_lock, flags);
753 if (rtn) { 757 if (rtn) {
758 trace_scsi_dispatch_cmd_error(cmd, rtn);
754 if (rtn != SCSI_MLQUEUE_DEVICE_BUSY && 759 if (rtn != SCSI_MLQUEUE_DEVICE_BUSY &&
755 rtn != SCSI_MLQUEUE_TARGET_BUSY) 760 rtn != SCSI_MLQUEUE_TARGET_BUSY)
756 rtn = SCSI_MLQUEUE_HOST_BUSY; 761 rtn = SCSI_MLQUEUE_HOST_BUSY;
@@ -781,6 +786,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
781 */ 786 */
782static void scsi_done(struct scsi_cmnd *cmd) 787static void scsi_done(struct scsi_cmnd *cmd)
783{ 788{
789 trace_scsi_dispatch_cmd_done(cmd);
784 blk_complete_request(cmd->request); 790 blk_complete_request(cmd->request);
785} 791}
786 792