Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65c7edda authored by Roland Dreier's avatar Roland Dreier
Browse files

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: default avatarRoland Dreier <rolandd@cisco.com>
parent bf6d9e23
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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,