On Fri, Apr 14, 2017 at 09:13:40AM +0800, gfree.w...@foxmail.com wrote:
> From: Gao Feng <f...@ikuai8.com>
> 
> The function ctnl_untimeout is used to untimeout every conntrack
> which is using the timeout. But it is necessary to add one barrier
> synchronize_rcu because of racing. Maybe one conntrack has already
> owned this timeout, but it is not inserted into unconfirmed list or
> the hash list, when ctnl_untimeout untimeout the conntracks
> 
> Let me describe it with a call path
> CPU1                          CPU2
> alloc new conn
> add timeout ext
>                               ctnl_timeout_try_del
>                               untimeout all conns in list
>                               kfree_rcu.
> conn is confirmed.

Then this confirmed conn gets a timeout_ext->timeout == NULL since
ctnl_untimeout() is called first.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to