IPoIB: reinitialize path struct's completion for every query

It's possible that IPoIB will issue multiple SA queries for the same
path struct. Therefore the struct's completion needs to be
initialized for each query rather than only once when the struct is
allocated, or else we might not wait long enough for later queries to
finish and free the path struct too soon.

Signed-off-by: Roland Dreier <rolandd@cisco.com>

+2 -1
+2 -1
drivers/infiniband/ulp/ipoib/ipoib_main.c
··· 428 skb_queue_head_init(&path->queue); 429 430 INIT_LIST_HEAD(&path->neigh_list); 431 - init_completion(&path->done); 432 433 memcpy(path->pathrec.dgid.raw, gid->raw, sizeof (union ib_gid)); 434 path->pathrec.sgid = priv->local_gid; ··· 444 445 ipoib_dbg(priv, "Start path record lookup for " IPOIB_GID_FMT "\n", 446 IPOIB_GID_ARG(path->pathrec.dgid)); 447 448 path->query_id = 449 ib_sa_path_rec_get(priv->ca, priv->port,
··· 428 skb_queue_head_init(&path->queue); 429 430 INIT_LIST_HEAD(&path->neigh_list); 431 432 memcpy(path->pathrec.dgid.raw, gid->raw, sizeof (union ib_gid)); 433 path->pathrec.sgid = priv->local_gid; ··· 445 446 ipoib_dbg(priv, "Start path record lookup for " IPOIB_GID_FMT "\n", 447 IPOIB_GID_ARG(path->pathrec.dgid)); 448 + 449 + init_completion(&path->done); 450 451 path->query_id = 452 ib_sa_path_rec_get(priv->ca, priv->port,