aboutsummaryrefslogtreecommitdiffstats
path: root/net/rds/ib.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/rds/ib.c')
-rw-r--r--net/rds/ib.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/net/rds/ib.c b/net/rds/ib.c
index af1ef18b6ff0..d2007b931616 100644
--- a/net/rds/ib.c
+++ b/net/rds/ib.c
@@ -351,6 +351,7 @@ void rds_ib_exit(void)
351 rds_ib_sysctl_exit(); 351 rds_ib_sysctl_exit();
352 rds_ib_recv_exit(); 352 rds_ib_recv_exit();
353 rds_trans_unregister(&rds_ib_transport); 353 rds_trans_unregister(&rds_ib_transport);
354 rds_ib_fmr_exit();
354} 355}
355 356
356struct rds_transport rds_ib_transport = { 357struct rds_transport rds_ib_transport = {
@@ -386,10 +387,14 @@ int __init rds_ib_init(void)
386 387
387 INIT_LIST_HEAD(&rds_ib_devices); 388 INIT_LIST_HEAD(&rds_ib_devices);
388 389
389 ret = ib_register_client(&rds_ib_client); 390 ret = rds_ib_fmr_init();
390 if (ret) 391 if (ret)
391 goto out; 392 goto out;
392 393
394 ret = ib_register_client(&rds_ib_client);
395 if (ret)
396 goto out_fmr_exit;
397
393 ret = rds_ib_sysctl_init(); 398 ret = rds_ib_sysctl_init();
394 if (ret) 399 if (ret)
395 goto out_ibreg; 400 goto out_ibreg;
@@ -412,6 +417,8 @@ out_sysctl:
412 rds_ib_sysctl_exit(); 417 rds_ib_sysctl_exit();
413out_ibreg: 418out_ibreg:
414 rds_ib_unregister_client(); 419 rds_ib_unregister_client();
420out_fmr_exit:
421 rds_ib_fmr_exit();
415out: 422out:
416 return ret; 423 return ret;
417} 424}