Subject: use this_cpu ops for network statistics Acked-by: Tejun Heo CC: David Miller Signed-off-by: Christoph Lameter --- include/net/neighbour.h | 7 +------ include/net/netfilter/nf_conntrack.h | 9 ++------- 2 files changed, 3 insertions(+), 13 deletions(-) Index: linux-2.6/include/net/neighbour.h =================================================================== --- linux-2.6.orig/include/net/neighbour.h 2009-09-29 09:31:40.000000000 -0500 +++ linux-2.6/include/net/neighbour.h 2009-09-29 11:39:05.000000000 -0500 @@ -90,12 +90,7 @@ struct neigh_statistics unsigned long unres_discards; /* number of unresolved drops */ }; -#define NEIGH_CACHE_STAT_INC(tbl, field) \ - do { \ - preempt_disable(); \ - (per_cpu_ptr((tbl)->stats, smp_processor_id())->field)++; \ - preempt_enable(); \ - } while (0) +#define NEIGH_CACHE_STAT_INC(tbl, field) this_cpu_inc((tbl)->stats->field) struct neighbour { Index: linux-2.6/include/net/netfilter/nf_conntrack.h =================================================================== --- linux-2.6.orig/include/net/netfilter/nf_conntrack.h 2009-09-29 09:31:40.000000000 -0500 +++ linux-2.6/include/net/netfilter/nf_conntrack.h 2009-09-29 11:39:05.000000000 -0500 @@ -294,14 +294,9 @@ extern int nf_conntrack_set_hashsize(con extern unsigned int nf_conntrack_htable_size; extern unsigned int nf_conntrack_max; -#define NF_CT_STAT_INC(net, count) \ - (per_cpu_ptr((net)->ct.stat, raw_smp_processor_id())->count++) +#define NF_CT_STAT_INC(net, count) __this_cpu_inc((net)->ct.stat->count) #define NF_CT_STAT_INC_ATOMIC(net, count) \ -do { \ - local_bh_disable(); \ - per_cpu_ptr((net)->ct.stat, raw_smp_processor_id())->count++; \ - local_bh_enable(); \ -} while (0) + this_cpu_inc((net)->ct.stat->count) #define MODULE_ALIAS_NFCT_HELPER(helper) \ MODULE_ALIAS("nfct-helper-" helper)