Loading drivers/nvme/host/core.c +24 −23 Original line number Diff line number Diff line Loading @@ -1382,32 +1382,11 @@ static void nvme_put_ns_from_disk(struct nvme_ns_head *head, int idx) srcu_read_unlock(&head->srcu, idx); } static int nvme_ns_ioctl(struct nvme_ns *ns, unsigned cmd, unsigned long arg) { switch (cmd) { case NVME_IOCTL_ID: force_successful_syscall_return(); return ns->head->ns_id; case NVME_IOCTL_ADMIN_CMD: return nvme_user_cmd(ns->ctrl, NULL, (void __user *)arg); case NVME_IOCTL_IO_CMD: return nvme_user_cmd(ns->ctrl, ns, (void __user *)arg); case NVME_IOCTL_SUBMIT_IO: return nvme_submit_io(ns, (void __user *)arg); default: if (ns->ndev) return nvme_nvm_ioctl(ns, cmd, arg); if (is_sed_ioctl(cmd)) return sed_ioctl(ns->ctrl->opal_dev, cmd, (void __user *) arg); return -ENOTTY; } } static int nvme_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) { struct nvme_ns_head *head = NULL; void __user *argp = (void __user *)arg; struct nvme_ns *ns; int srcu_idx, ret; Loading @@ -1415,7 +1394,29 @@ static int nvme_ioctl(struct block_device *bdev, fmode_t mode, if (unlikely(!ns)) return -EWOULDBLOCK; ret = nvme_ns_ioctl(ns, cmd, arg); switch (cmd) { case NVME_IOCTL_ID: force_successful_syscall_return(); ret = ns->head->ns_id; break; case NVME_IOCTL_ADMIN_CMD: ret = nvme_user_cmd(ns->ctrl, NULL, argp); break; case NVME_IOCTL_IO_CMD: ret = nvme_user_cmd(ns->ctrl, ns, argp); break; case NVME_IOCTL_SUBMIT_IO: ret = nvme_submit_io(ns, argp); break; default: if (ns->ndev) ret = nvme_nvm_ioctl(ns, cmd, arg); else if (is_sed_ioctl(cmd)) ret = sed_ioctl(ns->ctrl->opal_dev, cmd, argp); else ret = -ENOTTY; } nvme_put_ns_from_disk(head, srcu_idx); return ret; } Loading Loading
drivers/nvme/host/core.c +24 −23 Original line number Diff line number Diff line Loading @@ -1382,32 +1382,11 @@ static void nvme_put_ns_from_disk(struct nvme_ns_head *head, int idx) srcu_read_unlock(&head->srcu, idx); } static int nvme_ns_ioctl(struct nvme_ns *ns, unsigned cmd, unsigned long arg) { switch (cmd) { case NVME_IOCTL_ID: force_successful_syscall_return(); return ns->head->ns_id; case NVME_IOCTL_ADMIN_CMD: return nvme_user_cmd(ns->ctrl, NULL, (void __user *)arg); case NVME_IOCTL_IO_CMD: return nvme_user_cmd(ns->ctrl, ns, (void __user *)arg); case NVME_IOCTL_SUBMIT_IO: return nvme_submit_io(ns, (void __user *)arg); default: if (ns->ndev) return nvme_nvm_ioctl(ns, cmd, arg); if (is_sed_ioctl(cmd)) return sed_ioctl(ns->ctrl->opal_dev, cmd, (void __user *) arg); return -ENOTTY; } } static int nvme_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) { struct nvme_ns_head *head = NULL; void __user *argp = (void __user *)arg; struct nvme_ns *ns; int srcu_idx, ret; Loading @@ -1415,7 +1394,29 @@ static int nvme_ioctl(struct block_device *bdev, fmode_t mode, if (unlikely(!ns)) return -EWOULDBLOCK; ret = nvme_ns_ioctl(ns, cmd, arg); switch (cmd) { case NVME_IOCTL_ID: force_successful_syscall_return(); ret = ns->head->ns_id; break; case NVME_IOCTL_ADMIN_CMD: ret = nvme_user_cmd(ns->ctrl, NULL, argp); break; case NVME_IOCTL_IO_CMD: ret = nvme_user_cmd(ns->ctrl, ns, argp); break; case NVME_IOCTL_SUBMIT_IO: ret = nvme_submit_io(ns, argp); break; default: if (ns->ndev) ret = nvme_nvm_ioctl(ns, cmd, arg); else if (is_sed_ioctl(cmd)) ret = sed_ioctl(ns->ctrl->opal_dev, cmd, argp); else ret = -ENOTTY; } nvme_put_ns_from_disk(head, srcu_idx); return ret; } Loading