]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/infiniband/hw/nes/nes_cm.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[mv-sheeva.git] / drivers / infiniband / hw / nes / nes_cm.c
index a4972abedef1e967acafc123cfe3fe14bbbabecb..c5e4cb2d3223362f4d6517f090faf1be02273074 100644 (file)
@@ -1351,8 +1351,9 @@ static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip, int arpi
        else
                netdev = nesvnic->netdev;
 
+       neigh = dst_neigh_lookup(&rt->dst, &dst_ip);
+
        rcu_read_lock();
-       neigh = dst_get_neighbour_noref(&rt->dst);
        if (neigh) {
                if (neigh->nud_state & NUD_VALID) {
                        nes_debug(NES_DBG_CM, "Neighbor MAC address for 0x%08X"
@@ -1379,9 +1380,12 @@ static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip, int arpi
                        neigh_event_send(neigh, NULL);
                }
        }
-
 out:
        rcu_read_unlock();
+
+       if (neigh)
+               neigh_release(neigh);
+
        ip_rt_put(rt);
        return rc;
 }