Subject: Re: Passive OS fingerprint xtables match.

From: Patrick McHardy <[email-masked]>
Date: Mon, 16 Mar 2009 15:40:29 +0100

Jesper Dangaard Brouer wrote:
> On Tue, 10 Mar 2009, Evgeniy Polyakov wrote:
> 
>> +            call_rcu(&f->rcu_head, ipt_osf_finger_free_rcu);
>> +        }
>> +    }
>> +    rcu_read_unlock();
> 
> Should the list_del_rcu() not be protected by a spinlock?
> 
> 
>> +    rcu_barrier();
> 
> In some of my code I call synchronize_net(), is it enough to call 
> rcu_barrier()?
> 
> What is the difference between:
> 
>  synchronize_rcu()
>  synchronize_net()
>  rcu_barrier()

synchronize_net() is just a call to synchronize_rcu(), so their
functionality is equivalent. synchronize_net() is however only
supposed to synchronize with RX packet processing, which is usually
not enough for netfilter. So I prefer synchronize_rcu() for clarity.