libata: use __scsi_format_command()
authorHannes Reinecke <hare@suse.de>
Thu, 8 Jan 2015 06:43:45 +0000 (07:43 +0100)
committerChristoph Hellwig <hch@lst.de>
Fri, 9 Jan 2015 14:44:29 +0000 (15:44 +0100)
libata already uses an internal buffer, so we should be using
__scsi_format_command() here.

Tested-by: Robert Elliott <elliott@hp.com>
Reviewed-by: Robert Elliott <elliott@hp.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/ata/libata-eh.c

index 3dbec89..9179f11 100644 (file)
@@ -2482,6 +2482,7 @@ static void ata_eh_link_report(struct ata_link *link)
                struct ata_queued_cmd *qc = __ata_qc_from_tag(ap, tag);
                struct ata_taskfile *cmd = &qc->tf, *res = &qc->result_tf;
                const u8 *cdb = qc->cdb;
+               size_t cdb_len = qc->dev->cdb_len;
                char data_buf[20] = "";
                char cdb_buf[70] = "";
 
@@ -2509,16 +2510,12 @@ static void ata_eh_link_report(struct ata_link *link)
                }
 
                if (ata_is_atapi(qc->tf.protocol)) {
-                       if (qc->scsicmd)
-                               scsi_print_command(qc->scsicmd);
-                       else
-                               snprintf(cdb_buf, sizeof(cdb_buf),
-                                "cdb %02x %02x %02x %02x %02x %02x %02x %02x  "
-                                "%02x %02x %02x %02x %02x %02x %02x %02x\n         ",
-                                cdb[0], cdb[1], cdb[2], cdb[3],
-                                cdb[4], cdb[5], cdb[6], cdb[7],
-                                cdb[8], cdb[9], cdb[10], cdb[11],
-                                cdb[12], cdb[13], cdb[14], cdb[15]);
+                       if (qc->scsicmd) {
+                               cdb = qc->scsicmd->cmnd;
+                               cdb_len = qc->scsicmd->cmd_len;
+                       }
+                       __scsi_format_command(cdb_buf, sizeof(cdb_buf),
+                                             cdb, cdb_len);
                } else {
                        const char *descr = ata_get_cmd_descript(cmd->command);
                        if (descr)