mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-20 11:13:58 +08:00
hpsa: check for ctlr lockup after command allocation in main io path
Command allocation is the thing that takes the longest in the main i/o path, so check for controller lockup immediately after this to prevent submitting commands to locked up controller as much as possible. Reviewed-by: Scott Teel <scott.teel@pmcs.com> Signed-off-by: Don Brace <don.brace@pmcs.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
07543e0c05
commit
407863cb9d
@ -4097,8 +4097,15 @@ static int hpsa_scsi_queue_command(struct Scsi_Host *sh, struct scsi_cmnd *cmd)
|
|||||||
dev_err(&h->pdev->dev, "cmd_alloc returned NULL!\n");
|
dev_err(&h->pdev->dev, "cmd_alloc returned NULL!\n");
|
||||||
return SCSI_MLQUEUE_HOST_BUSY;
|
return SCSI_MLQUEUE_HOST_BUSY;
|
||||||
}
|
}
|
||||||
|
if (unlikely(lockup_detected(h))) {
|
||||||
|
cmd->result = DID_ERROR << 16;
|
||||||
|
cmd_free(h, c);
|
||||||
|
cmd->scsi_done(cmd);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Call alternate submit routine for I/O accelerated commands.
|
/*
|
||||||
|
* Call alternate submit routine for I/O accelerated commands.
|
||||||
* Retries always go down the normal I/O path.
|
* Retries always go down the normal I/O path.
|
||||||
*/
|
*/
|
||||||
if (likely(cmd->retries == 0 &&
|
if (likely(cmd->retries == 0 &&
|
||||||
|
Loading…
Reference in New Issue
Block a user