IB/MAD: Integrate ib_mad module into ib_core module
authorMark Bloch <markb@mellanox.com>
Thu, 19 May 2016 14:12:32 +0000 (17:12 +0300)
committerDoug Ledford <dledford@redhat.com>
Tue, 24 May 2016 18:40:13 +0000 (14:40 -0400)
Consolidate ib_mad into ib_core, this commit eliminates
ib_mad.ko and makes it part of ib_core.ko

Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/Makefile
drivers/infiniband/core/core_priv.h
drivers/infiniband/core/device.c
drivers/infiniband/core/mad.c

index 209838d2114dcda4b6e5c1d39448026147472f3c..cc0a6042ccf42586720d0d28bd53206654f2281c 100644 (file)
@@ -1,7 +1,7 @@
 infiniband-$(CONFIG_INFINIBAND_ADDR_TRANS)     := rdma_cm.o
 user_access-$(CONFIG_INFINIBAND_ADDR_TRANS)    := rdma_ucm.o
 
-obj-$(CONFIG_INFINIBAND) +=            ib_core.o ib_mad.o ib_sa.o \
+obj-$(CONFIG_INFINIBAND) +=            ib_core.o ib_sa.o \
                                        ib_cm.o iw_cm.o \
                                        $(infiniband-y)
 obj-$(CONFIG_INFINIBAND_USER_MAD) +=   ib_umad.o
@@ -10,12 +10,11 @@ obj-$(CONFIG_INFINIBAND_USER_ACCESS) +=     ib_uverbs.o ib_ucm.o \
 
 ib_core-y :=                   packer.o ud_header.o verbs.o cq.o rw.o sysfs.o \
                                device.o fmr_pool.o cache.o netlink.o \
-                               roce_gid_mgmt.o mr_pool.o addr.o
+                               roce_gid_mgmt.o mr_pool.o addr.o \
+                               mad.o smi.o agent.o mad_rmpp.o
 ib_core-$(CONFIG_INFINIBAND_USER_MEM) += umem.o
 ib_core-$(CONFIG_INFINIBAND_ON_DEMAND_PAGING) += umem_odp.o umem_rbtree.o
 
-ib_mad-y :=                    mad.o smi.o agent.o mad_rmpp.o
-
 ib_sa-y :=                     sa_query.o multicast.o
 
 ib_cm-y :=                     cm.o
index 589f16ad7c72a353b70c5d51be21d91ab75f1f9f..d43b2fa01ee81b31660715ad0703f1802bd46130 100644 (file)
@@ -140,4 +140,7 @@ static inline bool rdma_is_upper_dev_rcu(struct net_device *dev,
 int addr_init(void);
 void addr_cleanup(void);
 
+int ib_mad_init(void);
+void ib_mad_cleanup(void);
+
 #endif /* _CORE_PRIV_H */
index 805d72d67db1d6f6dab302a847f6e153b48cd334..f80549fbd6f55ec7f8f9285ba9f6290f62d7ca9c 100644 (file)
@@ -989,10 +989,18 @@ static int __init ib_core_init(void)
                goto err_ibnl;
        }
 
+       ret = ib_mad_init();
+       if (ret) {
+               pr_warn("Couldn't init IB MAD\n");
+               goto err_addr;
+       }
+
        ib_cache_setup();
 
        return 0;
 
+err_addr:
+       addr_cleanup();
 err_ibnl:
        ibnl_cleanup();
 err_sysfs:
@@ -1007,6 +1015,7 @@ err:
 static void __exit ib_core_cleanup(void)
 {
        ib_cache_cleanup();
+       ib_mad_cleanup();
        addr_cleanup();
        ibnl_cleanup();
        class_unregister(&ib_class);
index 9fa5bf33f5a34261b16a72c9800b55daab921c84..82fb511112da745e3fdbf30fe35bcebfceee7491 100644 (file)
 #include "smi.h"
 #include "opa_smi.h"
 #include "agent.h"
-
-MODULE_LICENSE("Dual BSD/GPL");
-MODULE_DESCRIPTION("kernel IB MAD API");
-MODULE_AUTHOR("Hal Rosenstock");
-MODULE_AUTHOR("Sean Hefty");
+#include "core_priv.h"
 
 static int mad_sendq_size = IB_MAD_QP_SEND_SIZE;
 static int mad_recvq_size = IB_MAD_QP_RECV_SIZE;
@@ -3316,7 +3312,7 @@ static struct ib_client mad_client = {
        .remove = ib_mad_remove_device
 };
 
-static int __init ib_mad_init_module(void)
+int ib_mad_init(void)
 {
        mad_recvq_size = min(mad_recvq_size, IB_MAD_QP_MAX_SIZE);
        mad_recvq_size = max(mad_recvq_size, IB_MAD_QP_MIN_SIZE);
@@ -3334,10 +3330,7 @@ static int __init ib_mad_init_module(void)
        return 0;
 }
 
-static void __exit ib_mad_cleanup_module(void)
+void ib_mad_cleanup(void)
 {
        ib_unregister_client(&mad_client);
 }
-
-module_init(ib_mad_init_module);
-module_exit(ib_mad_cleanup_module);