Re: [PATCH v1 3/5] seqlock: seqcount_t: Implement all read APIs as statement expressions

From: Ahmed S. Darwish
Date: Fri Aug 28 2020 - 04:36:47 EST


On Fri, Aug 28, 2020 at 10:30:22AM +0200, peterz@xxxxxxxxxxxxx wrote:
> On Fri, Aug 28, 2020 at 03:07:08AM +0200, Ahmed S. Darwish wrote:
> > #define __read_seqcount_begin(s) \
> > +({ \
> > + unsigned seq; \
> > + \
> > + do { \
> > + seq = __seqcount_sequence(s); \
> > + if (likely(! (seq & 1))) \
> > + break; \
> > + cpu_relax(); \
> > + } while (true); \
> > + \
> > + kcsan_atomic_next(KCSAN_SEQLOCK_REGION_MAX); \
> > + seq; \
> > +})
>
> Since we're there anyway, does it make sense to (re)write this like:
>
> while ((seq = __seqcount_sequence(s)) & 1)
> cpu_relax();
>
> ?
>

Yeah, much better of course; will do.

Thanks,

--
Ahmed S. Darwish
Linutronix GmbH