diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-06-22 20:32:03 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-23 14:48:19 -0400 |
commit | 8f1c14b2e3b1805d3e9e6a306d07f5371ea703a7 (patch) | |
tree | ad5d96e60d1ff4e91f5b23d7ae13884581ae2441 /include | |
parent | 8ceedea7c2600a1018d20f67e766c0773b59391a (diff) |
snmp: fix SNMP_ADD_STATS()
commit aa2ea0586d9d (tcp: fix outsegs stat for TSO segments) incorrectly
assumed SNMP_ADD_STATS() was used from BH context.
Fix this using mib[!in_softirq()] instead of mib[0]
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/snmp.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/snmp.h b/include/net/snmp.h index 92456f1035f5..899003d18db9 100644 --- a/include/net/snmp.h +++ b/include/net/snmp.h | |||
@@ -134,7 +134,7 @@ struct linux_xfrm_mib { | |||
134 | #define SNMP_ADD_STATS_USER(mib, field, addend) \ | 134 | #define SNMP_ADD_STATS_USER(mib, field, addend) \ |
135 | this_cpu_add(mib[1]->mibs[field], addend) | 135 | this_cpu_add(mib[1]->mibs[field], addend) |
136 | #define SNMP_ADD_STATS(mib, field, addend) \ | 136 | #define SNMP_ADD_STATS(mib, field, addend) \ |
137 | this_cpu_add(mib[0]->mibs[field], addend) | 137 | this_cpu_add(mib[!in_softirq()]->mibs[field], addend) |
138 | /* | 138 | /* |
139 | * Use "__typeof__(*mib[0]) *ptr" instead of "__typeof__(mib[0]) ptr" | 139 | * Use "__typeof__(*mib[0]) *ptr" instead of "__typeof__(mib[0]) ptr" |
140 | * to make @ptr a non-percpu pointer. | 140 | * to make @ptr a non-percpu pointer. |