nvme: only set reserved_tags in nvme_alloc_io_tag_set for fabrics controllers
authorChristoph Hellwig <hch@lst.de>
Wed, 30 Nov 2022 16:27:07 +0000 (17:27 +0100)
committerChristoph Hellwig <hch@lst.de>
Wed, 7 Dec 2022 14:02:24 +0000 (15:02 +0100)
The reserved_tags are only needed for fabrics controllers.  Right now only
fabrics drivers call this helper, so this is harmless, but we'll use it
in the PCIe driver soon.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
drivers/nvme/host/core.c

index f31586c..ed163c5 100644 (file)
@@ -4899,7 +4899,8 @@ int nvme_alloc_io_tag_set(struct nvme_ctrl *ctrl, struct blk_mq_tag_set *set,
        memset(set, 0, sizeof(*set));
        set->ops = ops;
        set->queue_depth = ctrl->sqsize + 1;
-       set->reserved_tags = NVMF_RESERVED_TAGS;
+       if (ctrl->ops->flags & NVME_F_FABRICS)
+               set->reserved_tags = NVMF_RESERVED_TAGS;
        set->numa_node = ctrl->numa_node;
        set->flags = BLK_MQ_F_SHOULD_MERGE;
        if (ctrl->ops->flags & NVME_F_BLOCKING)