提交 433d308d 编写于 作者: A Andy Grover 提交者: David S. Miller

RDS: Fix panic on unload

Remove explicit destruction of passive connection when destroying
active end of the connection. The passive end is also on the
device's connection list, and will thus be cleaned up properly.
Panic was caused by trying to clean it up twice.
Signed-off-by: NAndy Grover <andy.grover@oracle.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 86357b19
...@@ -187,11 +187,8 @@ void __rds_ib_destroy_conns(struct list_head *list, spinlock_t *list_lock) ...@@ -187,11 +187,8 @@ void __rds_ib_destroy_conns(struct list_head *list, spinlock_t *list_lock)
INIT_LIST_HEAD(list); INIT_LIST_HEAD(list);
spin_unlock_irq(list_lock); spin_unlock_irq(list_lock);
list_for_each_entry_safe(ic, _ic, &tmp_list, ib_node) { list_for_each_entry_safe(ic, _ic, &tmp_list, ib_node)
if (ic->conn->c_passive)
rds_conn_destroy(ic->conn->c_passive);
rds_conn_destroy(ic->conn); rds_conn_destroy(ic->conn);
}
} }
struct rds_ib_mr_pool *rds_ib_create_mr_pool(struct rds_ib_device *rds_ibdev) struct rds_ib_mr_pool *rds_ib_create_mr_pool(struct rds_ib_device *rds_ibdev)
......
...@@ -245,11 +245,8 @@ void __rds_iw_destroy_conns(struct list_head *list, spinlock_t *list_lock) ...@@ -245,11 +245,8 @@ void __rds_iw_destroy_conns(struct list_head *list, spinlock_t *list_lock)
INIT_LIST_HEAD(list); INIT_LIST_HEAD(list);
spin_unlock_irq(list_lock); spin_unlock_irq(list_lock);
list_for_each_entry_safe(ic, _ic, &tmp_list, iw_node) { list_for_each_entry_safe(ic, _ic, &tmp_list, iw_node)
if (ic->conn->c_passive)
rds_conn_destroy(ic->conn->c_passive);
rds_conn_destroy(ic->conn); rds_conn_destroy(ic->conn);
}
} }
static void rds_iw_set_scatterlist(struct rds_iw_scatterlist *sg, static void rds_iw_set_scatterlist(struct rds_iw_scatterlist *sg,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册