Re: [PATCH v3 23/23] ncr5380: Call complete_cmd() for disconnected commands on bus reset

From: Hannes Reinecke
Date: Wed Mar 23 2016 - 03:29:46 EST


On 03/21/2016 03:32 AM, Finn Thain wrote:
> 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 <fthain@xxxxxxxxxxxxxxxxxxx>
>
> ---
> 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-21 13:31:40.000000000 +1100
> +++ linux/drivers/scsi/NCR5380.c 2016-03-21 13:31:47.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);
>
>
>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>

Cheers,

Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@xxxxxxx +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)