|
|
@@ -730,7 +730,6 @@ static void c4iw_dealloc(struct uld_ctx *ctx)
|
|
|
if (ctx->dev->rdev.oc_mw_kva)
|
|
|
iounmap(ctx->dev->rdev.oc_mw_kva);
|
|
|
ib_dealloc_device(&ctx->dev->ibdev);
|
|
|
- iwpm_exit(RDMA_NL_C4IW);
|
|
|
ctx->dev = NULL;
|
|
|
}
|
|
|
|
|
|
@@ -827,12 +826,6 @@ static struct c4iw_dev *c4iw_alloc(const struct cxgb4_lld_info *infop)
|
|
|
setup_debugfs(devp);
|
|
|
}
|
|
|
|
|
|
- ret = iwpm_init(RDMA_NL_C4IW);
|
|
|
- if (ret) {
|
|
|
- pr_err("port mapper initialization failed with %d\n", ret);
|
|
|
- ib_dealloc_device(&devp->ibdev);
|
|
|
- return ERR_PTR(ret);
|
|
|
- }
|
|
|
|
|
|
return devp;
|
|
|
}
|
|
|
@@ -1333,6 +1326,15 @@ static int __init c4iw_init_module(void)
|
|
|
pr_err("%s[%u]: Failed to add netlink callback\n"
|
|
|
, __func__, __LINE__);
|
|
|
|
|
|
+ err = iwpm_init(RDMA_NL_C4IW);
|
|
|
+ if (err) {
|
|
|
+ pr_err("port mapper initialization failed with %d\n", err);
|
|
|
+ ibnl_remove_client(RDMA_NL_C4IW);
|
|
|
+ c4iw_cm_term();
|
|
|
+ debugfs_remove_recursive(c4iw_debugfs_root);
|
|
|
+ return err;
|
|
|
+ }
|
|
|
+
|
|
|
cxgb4_register_uld(CXGB4_ULD_RDMA, &c4iw_uld_info);
|
|
|
|
|
|
return 0;
|
|
|
@@ -1350,6 +1352,7 @@ static void __exit c4iw_exit_module(void)
|
|
|
}
|
|
|
mutex_unlock(&dev_mutex);
|
|
|
cxgb4_unregister_uld(CXGB4_ULD_RDMA);
|
|
|
+ iwpm_exit(RDMA_NL_C4IW);
|
|
|
ibnl_remove_client(RDMA_NL_C4IW);
|
|
|
c4iw_cm_term();
|
|
|
debugfs_remove_recursive(c4iw_debugfs_root);
|