aboutsummaryrefslogtreecommitdiffstats
path: root/net/rds/ib_rdma.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/rds/ib_rdma.c')
-rw-r--r--net/rds/ib_rdma.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/net/rds/ib_rdma.c b/net/rds/ib_rdma.c
index 2a4ec1182ba6..00f3995351c8 100644
--- a/net/rds/ib_rdma.c
+++ b/net/rds/ib_rdma.c
@@ -198,16 +198,15 @@ void rds_ib_remove_conn(struct rds_ib_device *rds_ibdev, struct rds_connection *
198 rds_ib_dev_put(rds_ibdev); 198 rds_ib_dev_put(rds_ibdev);
199} 199}
200 200
201void __rds_ib_destroy_conns(struct list_head *list, spinlock_t *list_lock) 201void rds_ib_destroy_nodev_conns(void)
202{ 202{
203 struct rds_ib_connection *ic, *_ic; 203 struct rds_ib_connection *ic, *_ic;
204 LIST_HEAD(tmp_list); 204 LIST_HEAD(tmp_list);
205 205
206 /* avoid calling conn_destroy with irqs off */ 206 /* avoid calling conn_destroy with irqs off */
207 spin_lock_irq(list_lock); 207 spin_lock_irq(&ib_nodev_conns_lock);
208 list_splice(list, &tmp_list); 208 list_splice(&ib_nodev_conns, &tmp_list);
209 INIT_LIST_HEAD(list); 209 spin_unlock_irq(&ib_nodev_conns_lock);
210 spin_unlock_irq(list_lock);
211 210
212 list_for_each_entry_safe(ic, _ic, &tmp_list, ib_node) 211 list_for_each_entry_safe(ic, _ic, &tmp_list, ib_node)
213 rds_conn_destroy(ic->conn); 212 rds_conn_destroy(ic->conn);