Subject: Use this_cpu ops for various counter updates There are numerous places where this_cpu ops can be used instead of referencing this_cpu_ptr. Signed-off-by: Christoph Lameter --- include/net/neighbour.h | 7 ------ include/net/netfilter/nf_conntrack.h | 5 +--- include/net/snmp.h | 40 ++++++++++------------------------- 3 files changed, 15 insertions(+), 37 deletions(-) Index: linux-2.6/include/net/neighbour.h =================================================================== --- linux-2.6.orig/include/net/neighbour.h 2009-05-28 14:29:21.000000000 -0500 +++ linux-2.6/include/net/neighbour.h 2009-05-28 14:29:25.000000000 -0500 @@ -89,12 +89,7 @@ struct neigh_statistics unsigned long unres_discards; /* number of unresolved drops */ }; -#define NEIGH_CACHE_STAT_INC(tbl, field) \ - do { \ - preempt_disable(); \ - (this_cpu_ptr((tbl)->stats)->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-05-28 14:29:21.000000000 -0500 +++ linux-2.6/include/net/netfilter/nf_conntrack.h 2009-05-28 14:29:25.000000000 -0500 @@ -291,12 +291,11 @@ 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) \ - (__this_cpu_ptr((net)->ct.stat)->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(); \ - __this_cpu_ptr((net)->ct.stat)->count++; \ + __this_cpu_inc((net)->ct.stat->count); \ local_bh_enable(); \ } while (0) Index: linux-2.6/include/net/snmp.h =================================================================== --- linux-2.6.orig/include/net/snmp.h 2009-05-28 14:29:21.000000000 -0500 +++ linux-2.6/include/net/snmp.h 2009-05-28 14:32:20.000000000 -0500 @@ -136,32 +136,16 @@ struct linux_xfrm_mib { #define SNMP_STAT_BHPTR(name) (name[0]) #define SNMP_STAT_USRPTR(name) (name[1]) -#define SNMP_INC_STATS_BH(mib, field) \ - (__this_cpu_ptr(mib[0])->mibs[field]++) -#define SNMP_INC_STATS_USER(mib, field) \ - do { \ - preempt_disable(); \ - this_cpu_ptr(mib[1])->mibs[field]++; \ - preempt_enable(); \ - } while (0) -#define SNMP_INC_STATS(mib, field) \ - do { \ - preempt_disable(); \ - this_cpu_ptr(mib[!in_softirq()])->mibs[field]++; \ - preempt_enable(); \ - } while (0) -#define SNMP_DEC_STATS(mib, field) \ - do { \ - preempt_disable(); \ - this_cpu_ptr(mib[!in_softirq()])->mibs[field]--; \ - preempt_enable(); \ - } while (0) -#define SNMP_ADD_STATS_BH(mib, field, addend) \ - (__this_cpu_ptr(mib[0])->mibs[field] += addend) -#define SNMP_ADD_STATS_USER(mib, field, addend) \ - do { \ - preempt_disable(); \ - this_cpu_ptr(mib[1])->mibs[field] += addend; \ - preempt_enable(); \ - } while (0) +#define SNMP_INC_STATS_BH(mib, field) \ + __this_cpu_inc(mib[0]->mibs[field]) +#define SNMP_INC_STATS_USER(mib, field) \ + this_cpu_inc(mib[1]->mibs[field]) +#define SNMP_INC_STATS(mib, field) \ + this_cpu_inc(mib[!in_softirq()]->mibs[field]) +#define SNMP_DEC_STATS(mib, field) \ + this_cpu_dec(mib[!in_softirq()]->mibs[field]) +#define SNMP_ADD_STATS_BH(mib, field, addend) \ + __this_cpu_add(mib[0]->mibs[field], addend) +#define SNMP_ADD_STATS_USER(mib, field, addend) \ + this_cpu_add(mib[1]->mibs[field], addend) #endif