From 22bde66f5e144d50dccf8af28f3f553c79001a1a Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Fri, 25 Jun 2010 14:59:49 -0700 Subject: [PATCH] --- yaml --- r: 214453 b: refs/heads/master c: 24fa163a4bae74b3378d30e1bc776568cfca8121 h: refs/heads/master i: 214451: 4c846abb6203e17881d5935437b33bd08f3d5820 v: v3 --- [refs] | 2 +- trunk/net/rds/ib.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index af99daa257dd..3eab5d4ecfca 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b6fb0df12db6c8b6bbcc7b5c9459b3bbf5f0cee6 +refs/heads/master: 24fa163a4bae74b3378d30e1bc776568cfca8121 diff --git a/trunk/net/rds/ib.c b/trunk/net/rds/ib.c index b21e24fd060c..fc14f637d645 100644 --- a/trunk/net/rds/ib.c +++ b/trunk/net/rds/ib.c @@ -336,11 +336,18 @@ static int rds_ib_laddr_check(__be32 addr) return ret; } +static void rds_ib_unregister_client(void) +{ + ib_unregister_client(&rds_ib_client); + /* wait for rds_ib_dev_free() to complete */ + flush_workqueue(rds_wq); +} + void rds_ib_exit(void) { rds_info_deregister_func(RDS_INFO_IB_CONNECTIONS, rds_ib_ic_info); rds_ib_destroy_nodev_conns(); - ib_unregister_client(&rds_ib_client); + rds_ib_unregister_client(); rds_ib_sysctl_exit(); rds_ib_recv_exit(); rds_trans_unregister(&rds_ib_transport); @@ -404,7 +411,7 @@ int __init rds_ib_init(void) out_sysctl: rds_ib_sysctl_exit(); out_ibreg: - ib_unregister_client(&rds_ib_client); + rds_ib_unregister_client(); out: return ret; }