neigh: Simply destroy handling wrt. hh_cache.
authorDavid S. Miller <davem@davemloft.net>
Sun, 17 Jul 2011 00:36:53 +0000 (17:36 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 17 Jul 2011 00:36:53 +0000 (17:36 -0700)
Now that hh_cache entries are embedded inside of neighbour
entries, their lifetimes and accesses are now synchronous
to that of the encompassing neighbour object.

Therefore we don't need to hook up the blackhole op to
hh_output on destroy.

Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/neighbour.c

index 77a399f2ad034d5c0f91078b6b10e3f7c74137db..83f9998f33478078fcf1b26aaf6999f86ec7b254 100644 (file)
@@ -689,8 +689,6 @@ static void neigh_destroy_rcu(struct rcu_head *head)
  */
 void neigh_destroy(struct neighbour *neigh)
 {
-       struct hh_cache *hh;
-
        NEIGH_CACHE_STAT_INC(neigh->tbl, destroys);
 
        if (!neigh->dead) {
@@ -703,13 +701,6 @@ void neigh_destroy(struct neighbour *neigh)
        if (neigh_del_timer(neigh))
                printk(KERN_WARNING "Impossible event.\n");
 
-       hh = &neigh->hh;
-       if (hh->hh_len) {
-               write_seqlock_bh(&hh->hh_lock);
-               hh->hh_output = neigh_blackhole;
-               write_sequnlock_bh(&hh->hh_lock);
-       }
-
        skb_queue_purge(&neigh->arp_queue);
 
        dev_put(neigh->dev);