Commit 407863cb authored by Stephen Cameron's avatar Stephen Cameron Committed by James Bottomley

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: default avatarScott Teel <scott.teel@pmcs.com>
Signed-off-by: default avatarDon Brace <don.brace@pmcs.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 07543e0c
...@@ -4097,8 +4097,15 @@ static int hpsa_scsi_queue_command(struct Scsi_Host *sh, struct scsi_cmnd *cmd) ...@@ -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 &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment