loop.c (38dabe210fbab4e7e8a03670ab3ba42f247ea08f) loop.c (ad22c355b707a8d8d48e282aadc01c0b0604b2e9)
1/*
2 * NVMe over Fabrics loopback device.
3 * Copyright (c) 2015-2016 HGST, a Western Digital Company.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *

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

179 }
180
181 blk_mq_start_request(req);
182
183 schedule_work(&iod->work);
184 return BLK_STS_OK;
185}
186
1/*
2 * NVMe over Fabrics loopback device.
3 * Copyright (c) 2015-2016 HGST, a Western Digital Company.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *

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

179 }
180
181 blk_mq_start_request(req);
182
183 schedule_work(&iod->work);
184 return BLK_STS_OK;
185}
186
187static void nvme_loop_submit_async_event(struct nvme_ctrl *arg, int aer_idx)
187static void nvme_loop_submit_async_event(struct nvme_ctrl *arg)
188{
189 struct nvme_loop_ctrl *ctrl = to_loop_ctrl(arg);
190 struct nvme_loop_queue *queue = &ctrl->queues[0];
191 struct nvme_loop_iod *iod = &ctrl->async_event_iod;
192
193 memset(&iod->cmd, 0, sizeof(iod->cmd));
194 iod->cmd.common.opcode = nvme_admin_async_event;
195 iod->cmd.common.command_id = NVME_AQ_BLK_MQ_DEPTH;

--- 507 unchanged lines hidden ---
188{
189 struct nvme_loop_ctrl *ctrl = to_loop_ctrl(arg);
190 struct nvme_loop_queue *queue = &ctrl->queues[0];
191 struct nvme_loop_iod *iod = &ctrl->async_event_iod;
192
193 memset(&iod->cmd, 0, sizeof(iod->cmd));
194 iod->cmd.common.opcode = nvme_admin_async_event;
195 iod->cmd.common.command_id = NVME_AQ_BLK_MQ_DEPTH;

--- 507 unchanged lines hidden ---