Re: [PATCH 04/21] Generic percpu refcounting

From: Kent Overstreet
Date: Wed May 15 2013 - 04:21:53 EST


On Tue, May 14, 2013 at 03:51:01PM +0200, Oleg Nesterov wrote:
> 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;

Whoops, yep. I was ripping out the dynamic stuff from my dynamic percpu
refcount code and missed that bit.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/