diff options
author | Jens Axboe <axboe@kernel.dk> | 2018-05-11 12:51:09 -0600 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2018-05-11 13:10:44 -0700 |
commit | 28361c403683c2b00d4f5e76045f3ccd299bf99d (patch) | |
tree | bcfd75dd3334fb180bdfd81669f4caa8189c1685 /drivers/ata/libata-eh.c | |
parent | ba80c3a572f4db2153a1a94c02f27a4566ca0995 (diff) | |
download | lwn-28361c403683c2b00d4f5e76045f3ccd299bf99d.tar.gz lwn-28361c403683c2b00d4f5e76045f3ccd299bf99d.zip |
libata: add extra internal command
Bump the internal tag to 32, instead of stealing the last tag in
our regular command space. This works just fine, since we don't
actually need a separate hardware tag for this. Internal commands
cannot coexist with NCQ commands.
As a bonus, we get rid of the special casing of what tag to use
for the internal command.
This is in preparation for utilizing all 32 commands for normal IO.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/ata/libata-eh.c')
-rw-r--r-- | drivers/ata/libata-eh.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 9f9aad77fbcd..eadbe26ba3dc 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c @@ -1057,7 +1057,8 @@ static int ata_do_link_abort(struct ata_port *ap, struct ata_link *link) /* we're gonna abort all commands, no need for fast drain */ ata_eh_set_pending(ap, 0); - for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { + /* include internal tag in iteration */ + for (tag = 0; tag <= ATA_MAX_QUEUE; tag++) { struct ata_queued_cmd *qc = ata_qc_from_tag(ap, tag); if (qc && (!link || qc->dev->link == link)) { |