16 Jul, 2009
1 commit
-
When a slab cache uses SLAB_DESTROY_BY_RCU, we must be careful when allocating
objects, since slab allocator could give a freed object still used by lockless
readers.In particular, nf_conntrack RCU lookups rely on ct->tuplehash[xxx].hnnode.next
being always valid (ie containing a valid 'nulls' value, or a valid pointer to next
object in hash chain.)kmem_cache_zalloc() setups object with NULL values, but a NULL value is not valid
for ct->tuplehash[xxx].hnnode.next.Fix is to call kmem_cache_alloc() and do the zeroing ourself.
As spotted by Patrick, we also need to make sure lookup keys are committed to
memory before setting refcount to 1, or a lockless reader could get a reference
on the old version of the object. Its key re-check could then pass the barrier.Signed-off-by: Eric Dumazet
Signed-off-by: Patrick McHardy
13 Jun, 2009
1 commit
-
Fix various typos in documentation txts.
Signed-off-by: Matt LaPlante
Signed-off-by: Jiri Kosina
02 Apr, 2009
1 commit
-
Doc: Fix spelling in RCU/rculist_nulls.txt.
Trival spelling fixes in RCU/rculist_nulls.txt.
Reviewed-by: Paul E. McKenney
Signed-off-by: Jesper Dangaard Brouer
Tested-by: Jarek Poplawski
Signed-off-by: David S. Miller
17 Nov, 2008
1 commit
-
Adds Documentation/RCU/rculist_nulls.txt file to describe how 'nulls'
end-of-list can help in some RCU algos.Signed-off-by: Eric Dumazet
Acked-by: Peter Zijlstra
Signed-off-by: David S. Miller