]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
IB/iser: Use iser_warn instead of BUG_ON in iser_conn_release
authorAriel Nahum <arieln@mellanox.com>
Wed, 1 Oct 2014 11:02:06 +0000 (14:02 +0300)
committerRoland Dreier <roland@purestorage.com>
Thu, 9 Oct 2014 07:06:06 +0000 (00:06 -0700)
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 <arieln@mellanox.com>
Signed-off-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/ulp/iser/iser_verbs.c

index 35f53a3fdf213a58b1866d39f119988273d2729a..57b20c6913673538c02f71d262cea68c3da0cc30 100644 (file)
@@ -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).