summaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorRandy Dunlap <randy.dunlap@oracle.com>2007-10-21 16:24:27 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-22 02:59:52 -0700
commitbfb85c9f753a7172bd962e8717118191dfd612cc (patch)
tree99701d12b83314bbba092e6841b28b842febdd08 /net/core
parent33b0c4fe6d0dd19fc7c9b801855f55c5260f2858 (diff)
downloadlinux-bfb85c9f753a7172bd962e8717118191dfd612cc.tar.gz
linux-bfb85c9f753a7172bd962e8717118191dfd612cc.tar.bz2
linux-bfb85c9f753a7172bd962e8717118191dfd612cc.zip
[ATM]: Fix clip module reload crash.
net/atm/clip.c crashes the kernel if it (module) is loaded, removed, and then loaded again. Its exit call to neigh_table_clear() should destroy the cache after freeing it. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r--net/core/neighbour.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index 67ba9914e52e..05979e356963 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -1438,6 +1438,9 @@ 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;
}