From aea8f4df6da46add468c44875348e1045bffeeb7 Mon Sep 17 00:00:00 2001 From: Ariel Nahum Date: Wed, 1 Oct 2014 14:02:06 +0300 Subject: IB/iser: Use iser_warn instead of BUG_ON in iser_conn_release In case iscsid was violently killed (SIGKILL) during its error recovery stage, we may never get a connection teardown sequence for some of the old connections. No harm done, but when we try to unload the module we will need to cleanup all these connections. So we actually may end-up here - so it's not a BUG_ON(), just give a relaxed warning that this happened and continue with normal unload. BUG_ON() will cause segfault on module_exit and we don't want that. Signed-off-by: Ariel Nahum Signed-off-by: Roi Dayan Signed-off-by: Or Gerlitz Signed-off-by: Roland Dreier diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c index 35f53a3..57b20c6 100644 --- a/drivers/infiniband/ulp/iser/iser_verbs.c +++ b/drivers/infiniband/ulp/iser/iser_verbs.c @@ -627,7 +627,9 @@ void iser_conn_release(struct iser_conn *iser_conn) mutex_unlock(&ig.connlist_mutex); mutex_lock(&iser_conn->state_mutex); - BUG_ON(iser_conn->state != ISER_CONN_DOWN); + if (iser_conn->state != ISER_CONN_DOWN) + iser_warn("iser conn %p state %d, expected state down.\n", + iser_conn, iser_conn->state); /* * In case we never got to bind stage, we still need to * release IB resources (which is safe to call more than once). -- cgit v0.10.2