| Date | Tue, 14 May 2013 15:51:01 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH 04/21] Generic percpu refcounting |
| |
On 05/13, Kent Overstreet wrote: > > +int percpu_ref_kill(struct percpu_ref *ref) > +{ > + unsigned __percpu *pcpu_count; > + unsigned __percpu *old; > + unsigned count = 0; > + int cpu; > + > + pcpu_count = ACCESS_ONCE(ref->pcpu_count); > + > + do { > + if (!pcpu_count) > + return 0; > + > + old = pcpu_count; > + pcpu_count = cmpxchg(&ref->pcpu_count, old, NULL); > + } while (pcpu_count != old);
This is purely cosmetic, feel free to ignore. But afaics all we need is
pcpu_count = ACCESS_ONCE(ref->pcpu_count); if (!cmpxchg(&ref->pcpu_count, pcpu_count, NULL)) return 0;
Oleg.
|