loop.c (dcef77274ae52136925287b6b59d5c6e6a4adfb9) loop.c (db45e1a5ddccc034eb60d62fc5352022d7963ae2)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * NVMe over Fabrics loopback device.
4 * Copyright (c) 2015-2016 HGST, a Western Digital Company.
5 */
6#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
7#include <linux/scatterlist.h>
8#include <linux/blk-mq.h>

--- 339 unchanged lines hidden (view full) ---

348
349 ctrl->queues[0].ctrl = ctrl;
350 error = nvmet_sq_init(&ctrl->queues[0].nvme_sq);
351 if (error)
352 return error;
353 ctrl->ctrl.queue_count = 1;
354
355 error = nvme_alloc_admin_tag_set(&ctrl->ctrl, &ctrl->admin_tag_set,
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * NVMe over Fabrics loopback device.
4 * Copyright (c) 2015-2016 HGST, a Western Digital Company.
5 */
6#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
7#include <linux/scatterlist.h>
8#include <linux/blk-mq.h>

--- 339 unchanged lines hidden (view full) ---

348
349 ctrl->queues[0].ctrl = ctrl;
350 error = nvmet_sq_init(&ctrl->queues[0].nvme_sq);
351 if (error)
352 return error;
353 ctrl->ctrl.queue_count = 1;
354
355 error = nvme_alloc_admin_tag_set(&ctrl->ctrl, &ctrl->admin_tag_set,
356 &nvme_loop_admin_mq_ops, BLK_MQ_F_NO_SCHED,
356 &nvme_loop_admin_mq_ops,
357 sizeof(struct nvme_loop_iod) +
358 NVME_INLINE_SG_CNT * sizeof(struct scatterlist));
359 if (error)
360 goto out_free_sq;
361
362 /* reset stopped state for the fresh admin queue */
363 clear_bit(NVME_CTRL_ADMIN_Q_STOPPED, &ctrl->ctrl.flags);
364

--- 124 unchanged lines hidden (view full) ---

489{
490 int ret;
491
492 ret = nvme_loop_init_io_queues(ctrl);
493 if (ret)
494 return ret;
495
496 ret = nvme_alloc_io_tag_set(&ctrl->ctrl, &ctrl->tag_set,
357 sizeof(struct nvme_loop_iod) +
358 NVME_INLINE_SG_CNT * sizeof(struct scatterlist));
359 if (error)
360 goto out_free_sq;
361
362 /* reset stopped state for the fresh admin queue */
363 clear_bit(NVME_CTRL_ADMIN_Q_STOPPED, &ctrl->ctrl.flags);
364

--- 124 unchanged lines hidden (view full) ---

489{
490 int ret;
491
492 ret = nvme_loop_init_io_queues(ctrl);
493 if (ret)
494 return ret;
495
496 ret = nvme_alloc_io_tag_set(&ctrl->ctrl, &ctrl->tag_set,
497 &nvme_loop_mq_ops, BLK_MQ_F_SHOULD_MERGE, 1,
497 &nvme_loop_mq_ops, 1,
498 sizeof(struct nvme_loop_iod) +
499 NVME_INLINE_SG_CNT * sizeof(struct scatterlist));
500 if (ret)
501 goto out_destroy_queues;
502
503 ret = nvme_loop_connect_io_queues(ctrl);
504 if (ret)
505 goto out_cleanup_tagset;

--- 183 unchanged lines hidden ---
498 sizeof(struct nvme_loop_iod) +
499 NVME_INLINE_SG_CNT * sizeof(struct scatterlist));
500 if (ret)
501 goto out_destroy_queues;
502
503 ret = nvme_loop_connect_io_queues(ctrl);
504 if (ret)
505 goto out_cleanup_tagset;

--- 183 unchanged lines hidden ---