Skip to content

Commit

Permalink
libata: remove assumption that ATA_MAX_QUEUE - 1 is the max
Browse files Browse the repository at this point in the history
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 <axboe@kernel.dk>
Signed-off-by: Tejun Heo <tj@kernel.org>
  • Loading branch information
Jens Axboe authored and Tejun Heo committed May 11, 2018
1 parent 2e2cc67 commit 9d207ac
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions drivers/ata/libata-eh.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -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;
Expand Down

0 comments on commit 9d207ac

Please sign in to comment.