diff options
author | Hannes Reinecke <hare@suse.com> | 2021-08-20 11:54:04 +0200 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2021-08-24 22:56:32 -0400 |
commit | f434e4984f5f2ce373902f14b816cc6f4ab809d9 (patch) | |
tree | 17c8226c4cba064ddf0962e601266767cbcceb6f /drivers/scsi/ncr53c8xx.c | |
parent | 227a13cf12f9d1a35c40033dd00e5cb87a5db932 (diff) | |
download | linux-f434e4984f5f2ce373902f14b816cc6f4ab809d9.tar.gz linux-f434e4984f5f2ce373902f14b816cc6f4ab809d9.tar.bz2 linux-f434e4984f5f2ce373902f14b816cc6f4ab809d9.zip |
scsi: ncr53c8xx: Complete all commands during bus reset
ncr_reset_bus() will complete all outstanding commands anyway, so there's
no need to single out a specific command.
Link: https://lore.kernel.org/r/20210820095405.12801-3-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/ncr53c8xx.c')
-rw-r--r-- | drivers/scsi/ncr53c8xx.c | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c index 534fe2cad41b..37ce4b3102ef 100644 --- a/drivers/scsi/ncr53c8xx.c +++ b/drivers/scsi/ncr53c8xx.c @@ -4553,12 +4553,8 @@ static void ncr_start_reset(struct ncb *np) ** **========================================================== */ -static int ncr_reset_bus (struct ncb *np, struct scsi_cmnd *cmd) +static int ncr_reset_bus (struct ncb *np) { -/* struct scsi_device *device = cmd->device; */ - struct ccb *cp; - int found; - /* * Return immediately if reset is in progress. */ @@ -4573,24 +4569,6 @@ static int ncr_reset_bus (struct ncb *np, struct scsi_cmnd *cmd) */ ncr_start_reset(np); /* - * First, look in the wakeup list - */ - for (found=0, cp=np->ccb; cp; cp=cp->link_ccb) { - /* - ** look for the ccb of this command. - */ - if (cp->host_status == HS_IDLE) continue; - if (cp->cmd == cmd) { - found = 1; - break; - } - } -/* - * Then, look in the waiting list - */ - if (!found && retrieve_from_waiting_list(0, np, cmd)) - found = 1; -/* * Wake-up all awaiting commands with DID_RESET. */ reset_waiting_list(np); @@ -4598,15 +4576,6 @@ static int ncr_reset_bus (struct ncb *np, struct scsi_cmnd *cmd) * Wake-up all pending commands with HS_RESET -> DID_RESET. */ ncr_wakeup(np, HS_RESET); -/* - * If the involved command was not in a driver queue, and the - * command is not currently in the waiting list, complete it - * with DID_RESET status in order to keep it alive. - */ - if (!found && !retrieve_from_waiting_list(0, np, cmd)) { - set_host_byte(cmd, DID_RESET); - ncr_queue_done_cmd(np, cmd); - } return SUCCESS; } @@ -8124,7 +8093,7 @@ static int ncr53c8xx_bus_reset(struct scsi_cmnd *cmd) */ spin_lock_irqsave(&np->smp_lock, flags); - sts = ncr_reset_bus(np, cmd); + sts = ncr_reset_bus(np); done_list = np->done_list; np->done_list = NULL; |