From: Jens Axboe Date: Fri, 11 May 2018 18:51:07 +0000 (-0600) Subject: libata: remove assumption that ATA_MAX_QUEUE - 1 is the max X-Git-Tag: v4.19~889^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9d207accca2c262206d0a9327ef1444c70cc0bdf;p=platform%2Fkernel%2Flinux-rpi.git libata: remove assumption that ATA_MAX_QUEUE - 1 is the max In a few spots we iterate to ATA_MAX_QUEUE -1, including internal knowledge that the last tag is the internal tag. Remove this assumption. Signed-off-by: Jens Axboe Signed-off-by: Tejun Heo --- diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 1035de1..9f9aad7 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c @@ -873,9 +873,12 @@ static int ata_eh_nr_in_flight(struct ata_port *ap) int nr = 0; /* count only non-internal commands */ - for (tag = 0; tag < ATA_MAX_QUEUE - 1; tag++) + for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { + if (ata_tag_internal(tag)) + continue; if (ata_qc_from_tag(ap, tag)) nr++; + } return nr; } @@ -900,7 +903,7 @@ void ata_eh_fastdrain_timerfn(struct timer_list *t) /* No progress during the last interval, tag all * in-flight qcs as timed out and freeze the port. */ - for (tag = 0; tag < ATA_MAX_QUEUE - 1; tag++) { + for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { struct ata_queued_cmd *qc = ata_qc_from_tag(ap, tag); if (qc) qc->err_mask |= AC_ERR_TIMEOUT;