Re: [PATCH] [RFC] netfilter: nf_conntrack: don't relase a conntrack with non-zero refcnt
From: Eric Dumazet <hidden>
Date: 2014-02-03 16:22:12
Also in:
lkml, netfilter-devel
From: Eric Dumazet <hidden>
Date: 2014-02-03 16:22:12
Also in:
lkml, netfilter-devel
On Mon, 2014-02-03 at 00:30 +0100, Pablo Neira Ayuso wrote:
*/
smp_wmb();
- atomic_set(&ct->ct_general.use, 1);
+ atomic_set(&ct->ct_general.use, 0);
return ct; Hi Pablo ! I think your patch is the way to go, but might need some extra care with memory barriers. I believe the smp_wmb() here is no longer needed. If its a newly allocated memory, no other users can access to ct, if its a recycled ct, content is already 0 anyway. After your patch, nf_conntrack_get(&tmpl->ct_general) should increment an already non zero refcnt, so no memory barrier is needed. But one smp_wmb() is needed right before this point : /* The caller holds a reference to this object */ atomic_set(&ct->ct_general.use, 2); Thanks !