SNMP stats are not protected by preemption but by bh handling.
Since protection is provided outside of preemption raw_cpu_ops
need to be used to avoid false positives.

Cc: Eric Dumazet <[email protected]>
CC: [email protected]
Signed-off-by: Christoph Lameter <[email protected]>

Index: linux/include/net/snmp.h
===================================================================
--- linux.orig/include/net/snmp.h       2013-10-07 09:16:07.595206864 -0500
+++ linux/include/net/snmp.h    2013-10-07 09:16:07.591206909 -0500
@@ -126,7 +126,7 @@ struct linux_xfrm_mib {
        extern __typeof__(type) __percpu *name[SNMP_ARRAY_SZ]
 
 #define SNMP_INC_STATS_BH(mib, field)  \
-                       __this_cpu_inc(mib[0]->mibs[field])
+                       raw_cpu_inc(mib[0]->mibs[field])
 
 #define SNMP_INC_STATS_USER(mib, field)        \
                        this_cpu_inc(mib[0]->mibs[field])
@@ -141,7 +141,7 @@ struct linux_xfrm_mib {
                        this_cpu_dec(mib[0]->mibs[field])
 
 #define SNMP_ADD_STATS_BH(mib, field, addend)  \
-                       __this_cpu_add(mib[0]->mibs[field], addend)
+                       raw_cpu_add(mib[0]->mibs[field], addend)
 
 #define SNMP_ADD_STATS_USER(mib, field, addend)        \
                        this_cpu_add(mib[0]->mibs[field], addend)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to