Fixes a hang in ipoib_flush_paths during sm up/down loop.
Even if path_rec_start() fails (for instance, because there is no sm_ah),
the path is added to the path list by neigh_add_path().
Then, ipoib_flush_paths() will wait for path->done, but it will never
complete because the request was not issued at all.
Signed-off-by: Yossi Etigin <[EMAIL PROTECTED]>
--
Fixes bugzilla 1329.
Index: b/drivers/infiniband/ulp/ipoib/ipoib_main.c
===================================================================
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c 2008-10-31 14:15:03.000000000
+0200
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c 2008-10-31 14:42:22.000000000
+0200
@@ -523,6 +523,7 @@ static int path_rec_start(struct net_dev
if (path->query_id < 0) {
ipoib_warn(priv, "ib_sa_path_rec_get failed: %d\n",
path->query_id);
path->query = NULL;
+ complete(&path->done);
return path->query_id;
}
--
--Yossi
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general