<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/Documentation/RCU/rculist_nulls.txt, branch v3.0.96</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>netfilter: nf_conntrack: nf_conntrack_alloc() fixes</title>
<updated>2009-07-16T12:03:40+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-07-16T12:03:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=941297f443f871b8c3372feccf27a8733f6ce9e9'/>
<id>941297f443f871b8c3372feccf27a8733f6ce9e9</id>
<content type='text'>
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-&gt;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-&gt;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 &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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-&gt;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-&gt;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 &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>trivial: Miscellaneous documentation typo fixes</title>
<updated>2009-06-12T16:01:47+00:00</updated>
<author>
<name>Matt LaPlante</name>
<email>kernel1@cyberdogtech.com</email>
</author>
<published>2009-04-27T13:06:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=19f594600110377ec4037fdf7fb93a25ec516212'/>
<id>19f594600110377ec4037fdf7fb93a25ec516212</id>
<content type='text'>
Fix various typos in documentation txts.

Signed-off-by: Matt LaPlante &lt;kernel1@cyberdogtech.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix various typos in documentation txts.

Signed-off-by: Matt LaPlante &lt;kernel1@cyberdogtech.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Doc: Fix spelling in RCU/rculist_nulls.txt.</title>
<updated>2009-04-02T08:33:51+00:00</updated>
<author>
<name>Jesper Dangaard Brouer</name>
<email>hawk@comx.dk</email>
</author>
<published>2009-03-31T09:36:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=edd4070f5d943b35e3e1a2e5e95e4a2eebb11d53'/>
<id>edd4070f5d943b35e3e1a2e5e95e4a2eebb11d53</id>
<content type='text'>
Doc: Fix spelling in RCU/rculist_nulls.txt.

Trival spelling fixes in RCU/rculist_nulls.txt.

Reviewed-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;

Signed-off-by: Jesper Dangaard Brouer &lt;hawk@comx.dk&gt;
Tested-by: Jarek Poplawski &lt;jarkao2@gmail.com;-&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Doc: Fix spelling in RCU/rculist_nulls.txt.

Trival spelling fixes in RCU/rculist_nulls.txt.

Reviewed-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;

Signed-off-by: Jesper Dangaard Brouer &lt;hawk@comx.dk&gt;
Tested-by: Jarek Poplawski &lt;jarkao2@gmail.com;-&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rcu: documents rculist_nulls</title>
<updated>2008-11-17T03:41:14+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>dada1@cosmosbay.com</email>
</author>
<published>2008-11-17T03:41:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=536533e69e3e4a9f0174509813f8df28970d6ebe'/>
<id>536533e69e3e4a9f0174509813f8df28970d6ebe</id>
<content type='text'>
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 &lt;dada1@cosmosbay.com&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;dada1@cosmosbay.com&gt;
Acked-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
