summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-07-16 17:36:53 -0700
committerDavid S. Miller <davem@davemloft.net>2011-07-16 17:36:53 -0700
commit0895b08adeb3f660cdff21990d0a9c2b59a919e7 (patch)
treec0e96f6775d38b79a8f7a614490f09282ccc855d /net
parent05e3aa0949c138803185f92bd7db9be59cfca1be (diff)
downloadlinux-0895b08adeb3f660cdff21990d0a9c2b59a919e7.tar.gz
linux-0895b08adeb3f660cdff21990d0a9c2b59a919e7.tar.bz2
linux-0895b08adeb3f660cdff21990d0a9c2b59a919e7.zip
neigh: Simply destroy handling wrt. hh_cache.
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>
Diffstat (limited to 'net')
-rw-r--r--net/core/neighbour.c9
1 files changed, 0 insertions, 9 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index 77a399f2ad03..83f9998f3347 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -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);