nvme: make SG_IO support optional
Translation SCSI commands to NVMe commands is rather pointless in general as applications must not expext to be able to use SCSI commands on a generic block device. Make the huge translation layer optional and hope no one will ever enable it in the future. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
bfd8947194
commit
4490733250
|
@ -8,3 +8,14 @@ config BLK_DEV_NVME
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called nvme.
|
module will be called nvme.
|
||||||
|
|
||||||
|
config BLK_DEV_NVME_SCSI
|
||||||
|
bool "SCSI emulation for NVMe device nodes"
|
||||||
|
depends on BLK_DEV_NVME
|
||||||
|
---help---
|
||||||
|
This adds support for the SG_IO ioctl on the NVMe character
|
||||||
|
and block devices nodes, as well a a translation for a small
|
||||||
|
number of selected SCSI commands to NVMe commands to the NVMe
|
||||||
|
driver. If you don't know what this means you probably want
|
||||||
|
to say N here, and if you know what it means you probably
|
||||||
|
want to say N as well.
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
obj-$(CONFIG_BLK_DEV_NVME) += nvme.o
|
obj-$(CONFIG_BLK_DEV_NVME) += nvme.o
|
||||||
|
|
||||||
nvme-y += core.o pci.o scsi.o lightnvm.o
|
nvme-y += core.o pci.o lightnvm.o
|
||||||
|
nvme-$(CONFIG_BLK_DEV_NVME_SCSI) += scsi.o
|
||||||
|
|
|
@ -467,10 +467,12 @@ static int nvme_ioctl(struct block_device *bdev, fmode_t mode,
|
||||||
return nvme_user_cmd(ns->ctrl, ns, (void __user *)arg);
|
return nvme_user_cmd(ns->ctrl, ns, (void __user *)arg);
|
||||||
case NVME_IOCTL_SUBMIT_IO:
|
case NVME_IOCTL_SUBMIT_IO:
|
||||||
return nvme_submit_io(ns, (void __user *)arg);
|
return nvme_submit_io(ns, (void __user *)arg);
|
||||||
|
#ifdef CONFIG_BLK_DEV_NVME_SCSI
|
||||||
case SG_GET_VERSION_NUM:
|
case SG_GET_VERSION_NUM:
|
||||||
return nvme_sg_get_version_num((void __user *)arg);
|
return nvme_sg_get_version_num((void __user *)arg);
|
||||||
case SG_IO:
|
case SG_IO:
|
||||||
return nvme_sg_io(ns, (void __user *)arg);
|
return nvme_sg_io(ns, (void __user *)arg);
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
return -ENOTTY;
|
return -ENOTTY;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue