diff options
Diffstat (limited to 'net/rds/ib.c')
-rw-r--r-- | net/rds/ib.c | 9 |
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 | ||
356 | struct rds_transport rds_ib_transport = { | 357 | struct 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(); |
413 | out_ibreg: | 418 | out_ibreg: |
414 | rds_ib_unregister_client(); | 419 | rds_ib_unregister_client(); |
420 | out_fmr_exit: | ||
421 | rds_ib_fmr_exit(); | ||
415 | out: | 422 | out: |
416 | return ret; | 423 | return ret; |
417 | } | 424 | } |