Subject: Re: 2.6.25-rc2-mm1 - several bugs and a crash

From: Patrick McHardy <[email-masked]>
Date: Thu, 21 Feb 2008 17:34:56 +0100

Stephen Hemminger wrote:
> On Thu, 21 Feb 2008 12:28:50 +0100
> Patrick McHardy <[email-masked]> wrote:
>
>
>   
>> diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
>> index 327e847..b77eb56 100644
>> --- a/net/netfilter/nf_conntrack_core.c
>> +++ b/net/netfilter/nf_conntrack_core.c
>> @@ -256,13 +256,19 @@ __nf_conntrack_find(const struct nf_conntrack_tuple *tuple)
>>  	struct hlist_node *n;
>>  	unsigned int hash = hash_conntrack(tuple);
>>  
>> +	/* Disable BHs the entire time since we normally need to disable them
>> +	 * at least once for the stats anyway.
>> +	 */
>> +	local_bh_disable();
>>     
>
> Use rcu_read_lock instead. local_bh_disable() won't work with some of the other forms
> of RCU alternatives.
>   

The caller already calls rcu_read_lock(). This is for the per-cpu
statistics.