I'm told that some targets are liable to disconnect a REQUEST SENSE
command. Theoretically this would cause a command undergoing autosense to
be moved onto the disconnected list. The bus reset handler must call
complete_cmd() for these commands, otherwise the hostdata->sensing pointer
will not get cleared. That would cause autosense processing to stall and
a timeout or an incorrect scsi_eh_restore_cmnd() would eventually follow.

Signed-off-by: Finn Thain <fth...@telegraphics.com.au>
Reported-by: Michael Schmitz <schmitz...@gmail.com>
Tested-by: Ondrej Zary <li...@rainbow-software.org>
Reviewed-by: Hannes Reinecke <h...@suse.com>

---
 drivers/scsi/NCR5380.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/drivers/scsi/NCR5380.c
===================================================================
--- linux.orig/drivers/scsi/NCR5380.c   2016-03-23 21:10:00.000000000 +1100
+++ linux/drivers/scsi/NCR5380.c        2016-03-23 21:10:07.000000000 +1100
@@ -2437,7 +2437,7 @@ static int NCR5380_bus_reset(struct scsi
                struct scsi_cmnd *cmd = NCR5380_to_scmd(ncmd);
 
                set_host_byte(cmd, DID_RESET);
-               cmd->scsi_done(cmd);
+               complete_cmd(instance, cmd);
        }
        INIT_LIST_HEAD(&hostdata->disconnected);
 


--
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