diff options
author | Leon Romanovsky <leonro@mellanox.com> | 2016-05-19 17:12:31 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-05-24 14:40:13 -0400 |
commit | e3f20f02864f6da1509c523bfa1e928619e59095 (patch) | |
tree | ad2b79a9ba8c013cc11d0f1c78416d92edda5076 /drivers/infiniband/core/device.c | |
parent | c16d2750a08c8ccaf98d65f287a8aec91bb9610d (diff) |
IB/core: Integrate IB address resolution module into core
IB address resolution is declared as a module (ib_addr.ko) which loads
itself before IB core module (ib_core.ko).
It causes to the scenario where IB netlink which is initialized by IB
core can't be used by ib_addr.ko.
In order to solve it, we are converting ib_addr.ko to be part of
IB core module.
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/core/device.c')
-rw-r--r-- | drivers/infiniband/core/device.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c index 10979844026a..805d72d67db1 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c @@ -983,10 +983,18 @@ static int __init ib_core_init(void) goto err_sysfs; } + ret = addr_init(); + if (ret) { + pr_warn("Could't init IB address resolution\n"); + goto err_ibnl; + } + ib_cache_setup(); return 0; +err_ibnl: + ibnl_cleanup(); err_sysfs: class_unregister(&ib_class); err_comp: @@ -999,6 +1007,7 @@ err: static void __exit ib_core_cleanup(void) { ib_cache_cleanup(); + addr_cleanup(); ibnl_cleanup(); class_unregister(&ib_class); destroy_workqueue(ib_comp_wq); |