Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 433d308d authored by Andy Grover's avatar Andy Grover Committed by David S. Miller
Browse files

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: default avatarAndy Grover <andy.grover@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 86357b19
Loading
Loading
Loading
Loading
+1 −4
Original line number Original line Diff line number Diff line
@@ -187,12 +187,9 @@ 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)
{
{
+1 −4
Original line number Original line Diff line number Diff line
@@ -245,12 +245,9 @@ 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,
		struct scatterlist *list, unsigned int sg_len)
		struct scatterlist *list, unsigned int sg_len)