]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - lib/percpu_counter.c
percpu_counter: use this_cpu_ptr() instead of per_cpu_ptr()
[net-next-2.6.git] / lib / percpu_counter.c
index 1d954ea72331499326b14c9564b4f90f64defec7..604678d7d06d9b101feafb31da72654d5f618500 100644 (file)
@@ -73,9 +73,9 @@ void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch)
 {
        s64 count;
        s32 *pcount;
-       int cpu = get_cpu();
 
-       pcount = per_cpu_ptr(fbc->counters, cpu);
+       preempt_disable();
+       pcount = this_cpu_ptr(fbc->counters);
        count = *pcount + amount;
        if (count >= batch || count <= -batch) {
                spin_lock(&fbc->lock);
@@ -85,7 +85,7 @@ void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch)
        } else {
                *pcount = count;
        }
-       put_cpu();
+       preempt_enable();
 }
 EXPORT_SYMBOL(__percpu_counter_add);