[RFC PATCH v3 3/3] nvme: wire up support for async passthrough
Keith Busch
kbusch at kernel.org
Wed Mar 17 16:45:50 GMT 2021
On Tue, Mar 16, 2021 at 07:31:26PM +0530, Kanchan Joshi wrote:
> @@ -1179,6 +1278,20 @@ static int nvme_submit_user_cmd(struct request_queue *q,
> req->cmd_flags |= REQ_INTEGRITY;
> }
> }
> + if (ioucmd) { /* async handling */
> + u32 effects;
> +
> + effects = nvme_command_effects(ns->ctrl, ns, cmd->common.opcode);
> + /* filter commands with non-zero effects, keep it simple for now*/
You shouldn't need to be concerned with this. You've wired up the ioucmd
only to the NVME_IOCTL_IO_CMD, and nvme_command_effects() can only
return 0 for that.
It would be worth adding support for NVME_IOCTL_IO_CMD64 too, though,
and that doesn't change the effects handling either.
> + if (effects) {
> + ret = -EOPNOTSUPP;
> + goto out_unmap;
> + }
> + nvme_setup_uring_cmd_data(req, ioucmd, meta, write);
> + blk_execute_rq_nowait(ns ? ns->disk : NULL, req, 0,
> + nvme_end_async_pt);
> + return 0;
> + }
More information about the Linux-nvme
mailing list