mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-27 22:53:55 +08:00
nvme: helper for uring-passthrough checks
Factor out a helper consolidating the error checks, and fix typo in a comment too. This is in preparation to support admin commands on this path. Signed-off-by: Kanchan Joshi <joshi.k@samsung.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20220520090630.70394-2-joshi.k@samsung.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
a327c341dc
commit
00fc2eeb15
@ -556,6 +556,19 @@ long nvme_ns_chr_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
return __nvme_ioctl(ns, cmd, (void __user *)arg);
|
||||
}
|
||||
|
||||
static int nvme_uring_cmd_checks(unsigned int issue_flags)
|
||||
{
|
||||
/* IOPOLL not supported yet */
|
||||
if (issue_flags & IO_URING_F_IOPOLL)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
/* NVMe passthrough requires big SQE/CQE support */
|
||||
if ((issue_flags & (IO_URING_F_SQE128|IO_URING_F_CQE32)) !=
|
||||
(IO_URING_F_SQE128|IO_URING_F_CQE32))
|
||||
return -EOPNOTSUPP;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int nvme_ns_uring_cmd(struct nvme_ns *ns, struct io_uring_cmd *ioucmd,
|
||||
unsigned int issue_flags)
|
||||
{
|
||||
@ -564,14 +577,9 @@ static int nvme_ns_uring_cmd(struct nvme_ns *ns, struct io_uring_cmd *ioucmd,
|
||||
|
||||
BUILD_BUG_ON(sizeof(struct nvme_uring_cmd_pdu) > sizeof(ioucmd->pdu));
|
||||
|
||||
/* IOPOLL not supported yet */
|
||||
if (issue_flags & IO_URING_F_IOPOLL)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
/* NVMe passthrough requires bit SQE/CQE support */
|
||||
if ((issue_flags & (IO_URING_F_SQE128|IO_URING_F_CQE32)) !=
|
||||
(IO_URING_F_SQE128|IO_URING_F_CQE32))
|
||||
return -EOPNOTSUPP;
|
||||
ret = nvme_uring_cmd_checks(issue_flags);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
switch (ioucmd->cmd_op) {
|
||||
case NVME_URING_CMD_IO:
|
||||
|
Loading…
Reference in New Issue
Block a user