Re: [RFT 1/4] iptables: lock free counters
From: Patrick McHardy <hidden>
Date: 2009-02-18 10:02:14
Also in:
netfilter-devel
From: Patrick McHardy <hidden>
Date: 2009-02-18 10:02:14
Also in:
netfilter-devel
Stephen Hemminger wrote:
@@ -1148,13 +1206,14 @@ static int do_add_counters(struct net *n goto free; } - write_lock_bh(&t->lock); + mutex_lock(&t->lock); private = t->private; if (private->number != num_counters) { ret = -EINVAL; goto unlock_up_free; } + preempt_disable(); i = 0; /* Choose the copy that is on our node */ loc_cpu_entry = private->entries[smp_processor_id()];@@ -1164,7 +1223,8 @@ static int do_add_counters(struct net *n paddc, &i); unlock_up_free: - write_unlock_bh(&t->lock); + mutex_unlock(&t->lock); + xt_table_unlock(t); module_put(t->me); free:
This part (arptables.c) seems to be missing a preempt_enable(). Other than this, the patch looks good to me, if you want I can already apply this one.