diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-03 05:00:03 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-05 08:09:36 (GMT) |
commit | 178709bbfe9d4fe432c272ed65a34b8582703c23 (patch) | |
tree | a2a1ea956cfb8fd17c2d5fcf533f16d7cad50a9a /drivers/infiniband/ulp/ipoib/ipoib_multicast.c | |
parent | dbedbe6d56e8944f220e34deb9ebdf4bec2a2afd (diff) | |
download | linux-178709bbfe9d4fe432c272ed65a34b8582703c23.tar.xz |
ipoib: Convert over to dev_lookup_neigh_skb().
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/infiniband/ulp/ipoib/ipoib_multicast.c')
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c index 20ebc6f..fbb95ee 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c @@ -720,16 +720,20 @@ out: rcu_read_lock(); if (dst) - n = dst_get_neighbour_noref(dst); - if (n && !*to_ipoib_neigh(n)) { - struct ipoib_neigh *neigh = ipoib_neigh_alloc(n, - skb->dev); - - if (neigh) { - kref_get(&mcast->ah->ref); - neigh->ah = mcast->ah; - list_add_tail(&neigh->list, &mcast->neigh_list); + n = dst_neigh_lookup_skb(dst, skb); + if (n) { + if (!*to_ipoib_neigh(n)) { + struct ipoib_neigh *neigh; + + neigh = ipoib_neigh_alloc(n, skb->dev); + if (neigh) { + kref_get(&mcast->ah->ref); + neigh->ah = mcast->ah; + list_add_tail(&neigh->list, + &mcast->neigh_list); + } } + neigh_release(n); } rcu_read_unlock(); spin_unlock_irqrestore(&priv->lock, flags); |