libata already uses an internal buffer, so we should be using
__scsi_format_command() here.

Tested-by: Robert Elliott <elli...@hp.com>
Reviewed-by: Robert Elliott <elli...@hp.com>
Reviewed-by: Christoph Hellwig <h...@lst.de>
Acked-by: Tejun Heo <t...@kernel.org>
Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 drivers/ata/libata-eh.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 3dbec89..9179f11 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -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)
-- 
1.8.4.5

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to