--- a/drivers/nvme/host/fabrics.c +++ b/drivers/nvme/host/fabrics.c @@ -493,7 +493,7 @@ EXPORT_SYMBOL_GPL(nvmf_should_reconnect) */ int nvmf_register_transport(struct nvmf_transport_ops *ops) {
- if (!ops->create_ctrl)
- if (!ops->create_ctrl || !ops->module) return -EINVAL;
down_write(&nvmf_transports_rwsem);
Hi Greg,
I think that this part broke builtin compilation of nvme over fabrics code.
This was later fixed by Christoph in: -- commit 5a1e59533380a3fd04593e4ab2d4633ebf7745c1 Author: Christoph Hellwig hch@lst.de Date: Thu Feb 22 07:24:08 2018 -0800
nvme-fabrics: don't check for non-NULL module in nvmf_register_transport
THIS_MODULE evaluates to NULL when used from code built into the kernel, thus breaking built-in transport modules. Remove the bogus check.
Fixes: 0de5cd36 ("nvme-fabrics: protect against module unload during create_ctrl") Signed-off-by: Christoph Hellwig hch@lst.de Reviewed-by: Sagi Grimberg sagi@grimberg.me Reviewed-by: Johannes Thumshirn jthumshirn@suse.de Signed-off-by: Keith Busch keith.busch@intel.com
diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c index 5dd4ceefed8f..a1c58e35075e 100644 --- a/drivers/nvme/host/fabrics.c +++ b/drivers/nvme/host/fabrics.c @@ -493,7 +493,7 @@ EXPORT_SYMBOL_GPL(nvmf_should_reconnect); */ int nvmf_register_transport(struct nvmf_transport_ops *ops) { - if (!ops->create_ctrl || !ops->module) + if (!ops->create_ctrl) return -EINVAL;
down_write(&nvmf_transports_rwsem); --
So I'd suggest taking that as well.