From: Don Brace Date: Mon, 20 Jul 2020 21:53:03 +0000 (-0500) Subject: scsi: hpsa: Increase controller error handling timeout X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=30bda7848a23980c7eecda4a1148e093d3e98de0;p=linux.git scsi: hpsa: Increase controller error handling timeout The controller can become slow to respond to SCSI INQUIRY requests resulting in the SCSI midlayer offlining the controller device. Increase the timeout value for commands sent to the controller device. Link: https://lore.kernel.org/r/159528198335.24772.7963614374905470122.stgit@brunhilda Reviewed-by: Scott Teel Reviewed-by: Scott Benesh Reviewed-by: Kevin Barnett Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen --- diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index 9b1edc541ed0e..bd96bb6d0e0a5 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -2134,6 +2134,7 @@ static int hpsa_slave_alloc(struct scsi_device *sdev) } /* configure scsi device based on internal per-device structure */ +#define CTLR_TIMEOUT (120 * HZ) static int hpsa_slave_configure(struct scsi_device *sdev) { struct hpsa_scsi_dev_t *sd; @@ -2149,6 +2150,9 @@ static int hpsa_slave_configure(struct scsi_device *sdev) sdev->eh_timeout = HPSA_EH_PTRAID_TIMEOUT; blk_queue_rq_timeout(sdev->request_queue, HPSA_EH_PTRAID_TIMEOUT); + } else if (is_hba_lunid(sd->scsi3addr)) { + sdev->eh_timeout = CTLR_TIMEOUT; + blk_queue_rq_timeout(sdev->request_queue, CTLR_TIMEOUT); } else { queue_depth = sd->queue_depth != 0 ? sd->queue_depth : sdev->host->can_queue;