]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mtip32xx: Print exact time when an internal command is interrupted
authorAsai Thambi SP <asamymuthupa@micron.com>
Thu, 25 Feb 2016 05:16:38 +0000 (21:16 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 26 May 2016 22:46:14 +0000 (15:46 -0700)
Orabug: 23331081

[ Upstream commit 5b7e0a8ac85e2dfd83830dc9e0b3554d153a37e3 ]

Print exact time when an internal command is interrupted.

Signed-off-by: Selvan Mani <smani@micron.com>
Signed-off-by: Rajesh Kumar Sambandam <rsambandam@micron.com>
Signed-off-by: Asai Thambi S P <asamymuthupa@micron.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
(cherry picked from commit c9d3e69a692eed01045bfa718505c3e887e87d85)

Signed-off-by: Dan Duval <dan.duval@oracle.com>
drivers/block/mtip32xx/mtip32xx.c

index 3bd7ca9853a8411aaf1401c5482bea8da974ac60..601bd6c4d824fb5702a5e042ef9e863591410ef6 100644 (file)
@@ -1102,6 +1102,7 @@ static int mtip_exec_internal_command(struct mtip_port *port,
        struct mtip_cmd *int_cmd;
        struct driver_data *dd = port->dd;
        int rv = 0;
+       unsigned long start;
 
        /* Make sure the buffer is 8 byte aligned. This is asic specific. */
        if (buffer & 0x00000007) {
@@ -1164,6 +1165,8 @@ static int mtip_exec_internal_command(struct mtip_port *port,
        /* Populate the command header */
        int_cmd->command_header->byte_count = 0;
 
+       start = jiffies;
+
        /* Issue the command to the hardware */
        mtip_issue_non_ncq_command(port, MTIP_TAG_INTERNAL);
 
@@ -1174,8 +1177,9 @@ static int mtip_exec_internal_command(struct mtip_port *port,
                                msecs_to_jiffies(timeout))) <= 0) {
                        if (rv == -ERESTARTSYS) { /* interrupted */
                                dev_err(&dd->pdev->dev,
-                                       "Internal command [%02X] was interrupted after %lu ms\n",
-                                       fis->command, timeout);
+                                       "Internal command [%02X] was interrupted after %u ms\n",
+                                       fis->command,
+                                       jiffies_to_msecs(jiffies - start));
                                rv = -EINTR;
                                goto exec_ic_exit;
                        } else if (rv == 0) /* timeout */