The change is to print warning when scsi done is called for an IO
that has not yet been issued to the fw. Also adding sc and tag to
debug print when IO is cleaned up.

Signed-off-by: Satish Kharat <satis...@cisco.com>
---
 drivers/scsi/fnic/fnic_scsi.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c
index 96acfcecd540..1148161d18f4 100644
--- a/drivers/scsi/fnic/fnic_scsi.c
+++ b/drivers/scsi/fnic/fnic_scsi.c
@@ -1397,8 +1397,9 @@ static void fnic_cleanup_io(struct fnic *fnic, int 
exclude_id)
 cleanup_scsi_cmd:
                sc->result = DID_TRANSPORT_DISRUPTED << 16;
                FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
-                             "%s: sc duration = %lu DID_TRANSPORT_DISRUPTED\n",
-                             __func__, (jiffies - start_time));
+                             "%s: tag:0x%x : sc:0x%p duration = %lu 
DID_TRANSPORT_DISRUPTED\n",
+                             __func__, sc->request->tag, sc,
+                             (jiffies - start_time));
 
                if (atomic64_read(&fnic->io_cmpl_skip))
                        atomic64_dec(&fnic->io_cmpl_skip);
@@ -1407,6 +1408,11 @@ static void fnic_cleanup_io(struct fnic *fnic, int 
exclude_id)
 
                /* Complete the command to SCSI */
                if (sc->scsi_done) {
+                       if (!(CMD_FLAGS(sc) & FNIC_IO_ISSUED))
+                               shost_printk(KERN_ERR, fnic->lport->host,
+                               "Calling done for IO not issued to fw: tag:0x%x 
sc:0x%p\n",
+                                sc->request->tag, sc);
+
                        FNIC_TRACE(fnic_cleanup_io,
                                  sc->device->host->host_no, i, sc,
                                  jiffies_to_msecs(jiffies - start_time),
-- 
2.17.2

Reply via email to