aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2018-05-11 12:51:03 -0600
committerTejun Heo <tj@kernel.org>2018-05-11 13:10:42 -0700
commit5ac40790b4708e4cb1a64ba2cb77320939bc5240 (patch)
treeaa986357a8e8387bbcdbf92520a32d87310faf19
parentlibata: Fix command retry decision (diff)
downloadlinux-dev-5ac40790b4708e4cb1a64ba2cb77320939bc5240.tar.xz
linux-dev-5ac40790b4708e4cb1a64ba2cb77320939bc5240.zip
libata: introduce notion of separate hardware tags
Rigth now these are the same, but drivers should be using ->hw_tag for their command setup and issue. Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Tejun Heo <tj@kernel.org>
-rw-r--r--drivers/ata/libata-core.c4
-rw-r--r--include/linux/libata.h3
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 40caad1d8b43..4dc67c770429 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -1600,7 +1600,7 @@ unsigned ata_exec_internal_sg(struct ata_device *dev,
qc = __ata_qc_from_tag(ap, tag);
- qc->tag = tag;
+ qc->tag = qc->hw_tag = tag;
qc->scsicmd = NULL;
qc->ap = ap;
qc->dev = dev;
@@ -5125,7 +5125,7 @@ struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev, int tag)
}
qc = __ata_qc_from_tag(ap, tag);
- qc->tag = tag;
+ qc->tag = qc->hw_tag = tag;
qc->scsicmd = NULL;
qc->ap = ap;
qc->dev = dev;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 1795fecdea17..07a8d54ba7af 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -637,7 +637,8 @@ struct ata_queued_cmd {
u8 cdb[ATAPI_CDB_LEN];
unsigned long flags; /* ATA_QCFLAG_xxx */
- unsigned int tag;
+ unsigned int tag; /* libata core tag */
+ unsigned int hw_tag; /* driver tag */
unsigned int n_elem;
unsigned int orig_n_elem;