[NEIGH] Fix add_timer race in neigh_add_timer
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 23 Oct 2005 06:37:48 +0000 (16:37 +1000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sun, 23 Oct 2005 06:37:48 +0000 (16:37 +1000)
commit6fb9974f49f7a6032118c5b6caa6e08e7097913e
treea1e8f77c1c5cd6a45842f4f02582bb583e6d1019
parent203755029e063066ecc4cf5eee1110ab946c2d88
[NEIGH] Fix add_timer race in neigh_add_timer

neigh_add_timer cannot use add_timer unconditionally.  The reason is that
by the time it has obtained the write lock someone else (e.g., neigh_update)
could have already added a new timer.

So it should only use mod_timer and deal with its return value accordingly.

This bug would have led to rare neighbour cache entry leaks.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
net/core/neighbour.c