Skip to content

Commit

Permalink
IPoIB: reinitialize path struct's completion for every query
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Roland Dreier committed Nov 29, 2005
1 parent bf6d9e2 commit 65c7edd
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion drivers/infiniband/ulp/ipoib/ipoib_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,6 @@ static struct ipoib_path *path_rec_create(struct net_device *dev,
skb_queue_head_init(&path->queue);

INIT_LIST_HEAD(&path->neigh_list);
init_completion(&path->done);

memcpy(path->pathrec.dgid.raw, gid->raw, sizeof (union ib_gid));
path->pathrec.sgid = priv->local_gid;
Expand All @@ -446,6 +445,8 @@ static int path_rec_start(struct net_device *dev,
ipoib_dbg(priv, "Start path record lookup for " IPOIB_GID_FMT "\n",
IPOIB_GID_ARG(path->pathrec.dgid));

init_completion(&path->done);

path->query_id =
ib_sa_path_rec_get(priv->ca, priv->port,
&path->pathrec,
Expand Down

0 comments on commit 65c7edd

Please sign in to comment.