diff mbox

[rdma-next,1/4] IB/netlink: Make ib_netlink a standalone module

Message ID 1462376518-6725-2-git-send-email-leon@kernel.org (mailing list archive)
State Superseded
Headers show

Commit Message

Leon Romanovsky May 4, 2016, 3:41 p.m. UTC
From: Mark Bloch <markb@mellanox.com>

ib_netlink is initialized by ib_core, which means that any module
ib_core depends on (ib_addr for example) can't use ib_netlink.

Let's turn ib_netlink to be standalone module, so it could be
used by any IB component.

Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
---
 drivers/infiniband/core/Makefile  | 6 ++++--
 drivers/infiniband/core/device.c  | 9 ---------
 drivers/infiniband/core/netlink.c | 9 ++++++++-
 3 files changed, 12 insertions(+), 12 deletions(-)

Comments

Jason Gunthorpe May 4, 2016, 6:46 p.m. UTC | #1
On Wed, May 04, 2016 at 06:41:55PM +0300, Leon Romanovsky wrote:
> From: Mark Bloch <markb@mellanox.com>
> 
> ib_netlink is initialized by ib_core, which means that any module
> ib_core depends on (ib_addr for example) can't use ib_netlink.

What is the downside of merging ib_addr into ib_core?

It seems like we have too many modules already.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ira Weiny May 4, 2016, 8:53 p.m. UTC | #2
On Wed, May 04, 2016 at 12:46:52PM -0600, Jason Gunthorpe wrote:
> On Wed, May 04, 2016 at 06:41:55PM +0300, Leon Romanovsky wrote:
> > From: Mark Bloch <markb@mellanox.com>
> > 
> > ib_netlink is initialized by ib_core, which means that any module
> > ib_core depends on (ib_addr for example) can't use ib_netlink.
> 
> What is the downside of merging ib_addr into ib_core?
> 
> It seems like we have too many modules already.

Agreed.

> 
> Jason
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Leon Romanovsky May 5, 2016, 6:41 a.m. UTC | #3
On Wed, May 04, 2016 at 04:53:25PM -0400, Ira Weiny wrote:
> On Wed, May 04, 2016 at 12:46:52PM -0600, Jason Gunthorpe wrote:
> > On Wed, May 04, 2016 at 06:41:55PM +0300, Leon Romanovsky wrote:
> > > From: Mark Bloch <markb@mellanox.com>
> > > 
> > > ib_netlink is initialized by ib_core, which means that any module
> > > ib_core depends on (ib_addr for example) can't use ib_netlink.
> > 
> > What is the downside of merging ib_addr into ib_core?
> > 
> > It seems like we have too many modules already.
> 
> Agreed.

Thanks,
I'll move v1 of this patch to my "trivial fixes" series.

> 
> > 
> > Jason
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/infiniband/core/Makefile b/drivers/infiniband/core/Makefile
index f818538..73a044b 100644
--- a/drivers/infiniband/core/Makefile
+++ b/drivers/infiniband/core/Makefile
@@ -3,13 +3,13 @@  user_access-$(CONFIG_INFINIBAND_ADDR_TRANS)	:= rdma_ucm.o
 
 obj-$(CONFIG_INFINIBAND) +=		ib_core.o ib_mad.o ib_sa.o \
 					ib_cm.o iw_cm.o ib_addr.o \
-					$(infiniband-y)
+					ib_netlink.o $(infiniband-y)
 obj-$(CONFIG_INFINIBAND_USER_MAD) +=	ib_umad.o
 obj-$(CONFIG_INFINIBAND_USER_ACCESS) +=	ib_uverbs.o ib_ucm.o \
 					$(user_access-y)
 
 ib_core-y :=			packer.o ud_header.o verbs.o cq.o sysfs.o \
-				device.o fmr_pool.o cache.o netlink.o \
+				device.o fmr_pool.o cache.o \
 				roce_gid_mgmt.o
 ib_core-$(CONFIG_INFINIBAND_USER_MEM) += umem.o
 ib_core-$(CONFIG_INFINIBAND_ON_DEMAND_PAGING) += umem_odp.o umem_rbtree.o
@@ -18,6 +18,8 @@  ib_mad-y :=			mad.o smi.o agent.o mad_rmpp.o
 
 ib_sa-y :=			sa_query.o multicast.o
 
+ib_netlink-y :=			netlink.o
+
 ib_cm-y :=			cm.o
 
 iw_cm-y :=			iwcm.o iwpm_util.o iwpm_msg.o
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index 1097984..e482164 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -977,18 +977,10 @@  static int __init ib_core_init(void)
 		goto err_comp;
 	}
 
-	ret = ibnl_init();
-	if (ret) {
-		pr_warn("Couldn't init IB netlink interface\n");
-		goto err_sysfs;
-	}
-
 	ib_cache_setup();
 
 	return 0;
 
-err_sysfs:
-	class_unregister(&ib_class);
 err_comp:
 	destroy_workqueue(ib_comp_wq);
 err:
@@ -999,7 +991,6 @@  err:
 static void __exit ib_core_cleanup(void)
 {
 	ib_cache_cleanup();
-	ibnl_cleanup();
 	class_unregister(&ib_class);
 	destroy_workqueue(ib_comp_wq);
 	/* Make sure that any pending umem accounting work is done. */
diff --git a/drivers/infiniband/core/netlink.c b/drivers/infiniband/core/netlink.c
index aa491f7..ff2dcbb 100644
--- a/drivers/infiniband/core/netlink.c
+++ b/drivers/infiniband/core/netlink.c
@@ -38,6 +38,10 @@ 
 #include <net/sock.h>
 #include <rdma/rdma_netlink.h>
 
+MODULE_AUTHOR("Roland Dreier");
+MODULE_DESCRIPTION("RDMA netlink infrastructure");
+MODULE_LICENSE("Dual BSD/GPL");
+
 struct ibnl_client {
 	struct list_head		list;
 	int				index;
@@ -255,7 +259,7 @@  int __init ibnl_init(void)
 	return 0;
 }
 
-void ibnl_cleanup(void)
+void __exit ibnl_cleanup(void)
 {
 	struct ibnl_client *cur, *next;
 
@@ -268,3 +272,6 @@  void ibnl_cleanup(void)
 
 	netlink_kernel_release(nls);
 }
+
+module_init(ibnl_init);
+module_exit(ibnl_cleanup);