OSDN Git Service

libata: don't clamp queue depth to ATA_MAX_QUEUE - 1
authorJens Axboe <axboe@kernel.dk>
Fri, 11 May 2018 18:51:10 +0000 (12:51 -0600)
committerTejun Heo <tj@kernel.org>
Fri, 11 May 2018 20:10:44 +0000 (13:10 -0700)
Use what the driver provides, which will still be ATA_MAX_QUEUE - 1
at most anyway.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/ata/libata-core.c
drivers/ata/libata-scsi.c

index 5e2f679..54c5802 100644 (file)
@@ -2286,7 +2286,7 @@ static int ata_dev_config_ncq(struct ata_device *dev,
                return 0;
        }
        if (ap->flags & ATA_FLAG_NCQ) {
-               hdepth = min(ap->scsi_host->can_queue, ATA_MAX_QUEUE - 1);
+               hdepth = min(ap->scsi_host->can_queue, ATA_MAX_QUEUE);
                dev->flags |= ATA_DFLAG_NCQ;
        }
 
@@ -6408,7 +6408,7 @@ void ata_host_init(struct ata_host *host, struct device *dev,
 {
        spin_lock_init(&host->lock);
        mutex_init(&host->eh_mutex);
-       host->n_tags = ATA_MAX_QUEUE - 1;
+       host->n_tags = ATA_MAX_QUEUE;
        host->dev = dev;
        host->ops = ops;
 }
@@ -6490,7 +6490,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
 {
        int i, rc;
 
-       host->n_tags = clamp(sht->can_queue, 1, ATA_MAX_QUEUE - 1);
+       host->n_tags = clamp(sht->can_queue, 1, ATA_MAX_QUEUE);
 
        /* host must have been started */
        if (!(host->flags & ATA_HOST_STARTED)) {
index 143cdad..ce5019d 100644 (file)
@@ -1319,7 +1319,7 @@ static int ata_scsi_dev_config(struct scsi_device *sdev,
                int depth;
 
                depth = min(sdev->host->can_queue, ata_id_queue_depth(dev->id));
-               depth = min(ATA_MAX_QUEUE - 1, depth);
+               depth = min(ATA_MAX_QUEUE, depth);
                scsi_change_queue_depth(sdev, depth);
        }
 
@@ -1432,7 +1432,7 @@ int __ata_change_queue_depth(struct ata_port *ap, struct scsi_device *sdev,
        /* limit and apply queue depth */
        queue_depth = min(queue_depth, sdev->host->can_queue);
        queue_depth = min(queue_depth, ata_id_queue_depth(dev->id));
-       queue_depth = min(queue_depth, ATA_MAX_QUEUE - 1);
+       queue_depth = min(queue_depth, ATA_MAX_QUEUE);
 
        if (sdev->queue_depth == queue_depth)
                return -EINVAL;