[PATCH] NVMe: Added IOCTL to initiate subsystem resets

Keith Busch keith.busch at intel.com
Thu Jun 4 15:13:47 PDT 2015


On Fri, 29 May 2015, Jon Derrick wrote:
> Controllers can perform optional subsystem resets as introduced in NVMe
> 1.1. This patch adds an IOCTL to trigger the subsystem reset by writing
> "NVMe" to the NSSR register.

Hi Jon,

Looks good except for one issue below, and then need to merge-up for
another conflict.

> Signed-off-by: Jon Derrick <jonathan.derrick at intel.com>
> ---
> @@ -1861,6 +1870,8 @@ static int nvme_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd,
> 		return nvme_user_cmd(ns->dev, ns, (void __user *)arg);
> 	case NVME_IOCTL_SUBMIT_IO:
> 		return nvme_submit_io(ns, (void __user *)arg);
> +	case NVME_IOCTL_SUBSYS_RESET:
> +		return nvme_subsys_reset(ns->dev);

This IOCTL belongs only in the "nvme_dev_ioctl" version; we don't want
this capability exposed through namespaces.

> 	case SG_GET_VERSION_NUM:
> 		return nvme_sg_get_version_num((void __user *)arg);
> 	case SG_IO:

> @@ -579,5 +579,6 @@ struct nvme_passthru_cmd {
> #define NVME_IOCTL_ADMIN_CMD	_IOWR('N', 0x41, struct nvme_admin_cmd)
> #define NVME_IOCTL_SUBMIT_IO	_IOW('N', 0x42, struct nvme_user_io)
> #define NVME_IOCTL_IO_CMD	_IOWR('N', 0x43, struct nvme_passthru_cmd)
> +#define NVME_IOCTL_SUBSYS_RESET	_IO('N', 0x44)

Will need to change the ioctl number once the single-controller reset
is applied. That patch was in line first, anyway.



More information about the Linux-nvme mailing list