Re: [PATCH] [RFC] netfilter: nf_conntrack: don't relase a conntrackwith non-zero refcnt
From: Eric Dumazet
Date: Mon Feb 03 2014 - 11:22:19 EST
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 !
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/