From 3e938ed439108ef407a50b0606cffedfebb543fd Mon Sep 17 00:00:00 2001 From: David Miller Date: Mon, 25 Jul 2011 00:01:22 +0000 Subject: [PATCH] --- yaml --- r: 278298 b: refs/heads/master c: 5b8b0060cbd6332ae5d1fa0bec0e8e211248d0e7 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/net/neighbour.h | 1 - trunk/net/core/neighbour.c | 18 ++---------------- 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/[refs] b/[refs] index 694234ddbce1..95cf98269a50 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1026fec8739663621d64216ba939c23bc1d089b7 +refs/heads/master: 5b8b0060cbd6332ae5d1fa0bec0e8e211248d0e7 diff --git a/trunk/include/net/neighbour.h b/trunk/include/net/neighbour.h index 87c0e5ce6492..e31f0a86f9b7 100644 --- a/trunk/include/net/neighbour.h +++ b/trunk/include/net/neighbour.h @@ -173,7 +173,6 @@ struct neigh_table { atomic_t entries; rwlock_t lock; unsigned long last_rand; - struct kmem_cache *kmem_cachep; struct neigh_statistics __percpu *stats; struct neigh_hash_table __rcu *nht; struct pneigh_entry **phash_buckets; diff --git a/trunk/net/core/neighbour.c b/trunk/net/core/neighbour.c index 27d3fefeaa13..661ad12e0cc9 100644 --- a/trunk/net/core/neighbour.c +++ b/trunk/net/core/neighbour.c @@ -288,7 +288,7 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl) goto out_entries; } - n = kmem_cache_zalloc(tbl->kmem_cachep, GFP_ATOMIC); + n = kzalloc(tbl->entry_size, GFP_ATOMIC); if (!n) goto out_entries; @@ -678,12 +678,6 @@ static inline void neigh_parms_put(struct neigh_parms *parms) neigh_parms_destroy(parms); } -static void neigh_destroy_rcu(struct rcu_head *head) -{ - struct neighbour *neigh = container_of(head, struct neighbour, rcu); - - kmem_cache_free(neigh->tbl->kmem_cachep, neigh); -} /* * neighbour must already be out of the table; * @@ -711,7 +705,7 @@ void neigh_destroy(struct neighbour *neigh) NEIGH_PRINTK2("neigh %p is destroyed.\n", neigh); atomic_dec(&neigh->tbl->entries); - call_rcu(&neigh->rcu, neigh_destroy_rcu); + kfree_rcu(neigh, rcu); } EXPORT_SYMBOL(neigh_destroy); @@ -1486,11 +1480,6 @@ void neigh_table_init_no_netlink(struct neigh_table *tbl) tbl->parms.reachable_time = neigh_rand_reach_time(tbl->parms.base_reachable_time); - if (!tbl->kmem_cachep) - tbl->kmem_cachep = - kmem_cache_create(tbl->id, tbl->entry_size, 0, - SLAB_HWCACHE_ALIGN|SLAB_PANIC, - NULL); tbl->stats = alloc_percpu(struct neigh_statistics); if (!tbl->stats) panic("cannot create neighbour cache statistics"); @@ -1575,9 +1564,6 @@ int neigh_table_clear(struct neigh_table *tbl) free_percpu(tbl->stats); tbl->stats = NULL; - kmem_cache_destroy(tbl->kmem_cachep); - tbl->kmem_cachep = NULL; - return 0; } EXPORT_SYMBOL(neigh_table_clear);