From: Don Brace Date: Fri, 23 Jan 2015 22:41:30 +0000 (-0600) Subject: hpsa: correct change_queue_depth X-Git-Tag: firefly_0821_release~176^2~2244^2~59 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7c0a0229bda26478f1fb15a2fa444b7ed3eac541;p=firefly-linux-kernel-4.4.55.git hpsa: correct change_queue_depth We change drive queue depths to match drive reported queue depths. The name of the SML function was changed from scsi_adjust_queue_depth changed to scsi_change_queue_depth. Reviewed-by: Scott Teel Signed-off-by: Don Brace Signed-off-by: Christoph Hellwig --- diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index 371d0a81d535..7dfe8293c374 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -217,6 +217,7 @@ static int hpsa_scsi_queue_command(struct Scsi_Host *h, struct scsi_cmnd *cmd); static void hpsa_scan_start(struct Scsi_Host *); static int hpsa_scan_finished(struct Scsi_Host *sh, unsigned long elapsed_time); +static int hpsa_change_queue_depth(struct scsi_device *sdev, int qdepth); static int hpsa_eh_device_reset_handler(struct scsi_cmnd *scsicmd); static int hpsa_eh_abort_handler(struct scsi_cmnd *scsicmd); @@ -672,7 +673,7 @@ static struct scsi_host_template hpsa_driver_template = { .queuecommand = hpsa_scsi_queue_command, .scan_start = hpsa_scan_start, .scan_finished = hpsa_scan_finished, - .change_queue_depth = scsi_change_queue_depth, + .change_queue_depth = hpsa_change_queue_depth, .this_id = -1, .use_clustering = ENABLE_CLUSTERING, .eh_abort_handler = hpsa_eh_abort_handler, @@ -4007,6 +4008,19 @@ static void hpsa_scan_start(struct Scsi_Host *sh) spin_unlock_irqrestore(&h->scan_lock, flags); } +static int hpsa_change_queue_depth(struct scsi_device *sdev, int qdepth) +{ + struct ctlr_info *h = sdev_to_hba(sdev); + + if (qdepth < 1) + qdepth = 1; + else + if (qdepth > h->nr_cmds) + qdepth = h->nr_cmds; + scsi_change_queue_depth(sdev, qdepth); + return sdev->queue_depth; +} + static int hpsa_scan_finished(struct Scsi_Host *sh, unsigned long elapsed_time) {