diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/percpu_counter.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/percpu_counter.c b/lib/percpu_counter.c index 1d954ea72331..604678d7d06d 100644 --- a/lib/percpu_counter.c +++ b/lib/percpu_counter.c | |||
@@ -73,9 +73,9 @@ void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch) | |||
73 | { | 73 | { |
74 | s64 count; | 74 | s64 count; |
75 | s32 *pcount; | 75 | s32 *pcount; |
76 | int cpu = get_cpu(); | ||
77 | 76 | ||
78 | pcount = per_cpu_ptr(fbc->counters, cpu); | 77 | preempt_disable(); |
78 | pcount = this_cpu_ptr(fbc->counters); | ||
79 | count = *pcount + amount; | 79 | count = *pcount + amount; |
80 | if (count >= batch || count <= -batch) { | 80 | if (count >= batch || count <= -batch) { |
81 | spin_lock(&fbc->lock); | 81 | spin_lock(&fbc->lock); |
@@ -85,7 +85,7 @@ void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch) | |||
85 | } else { | 85 | } else { |
86 | *pcount = count; | 86 | *pcount = count; |
87 | } | 87 | } |
88 | put_cpu(); | 88 | preempt_enable(); |
89 | } | 89 | } |
90 | EXPORT_SYMBOL(__percpu_counter_add); | 90 | EXPORT_SYMBOL(__percpu_counter_add); |
91 | 91 | ||