Hi Peter, On Thu, Jul 9, 2015 at 7:29 PM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > --- a/include/linux/atomic.h > +++ b/include/linux/atomic.h > @@ -28,6 +28,23 @@ static inline int atomic_add_unless(atom > #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) > #endif > > +#ifndef atomic_nand > +static inline void atomic_nand(int i, atomic_t *v) > +{ > + atomic_and(~i, v); That sounds like a misnomer... Your NAND is "A & ~B", while my[*] NAND is "~(A & B)"? [*] https://en.wikipedia.org/wiki/NAND_logic What about atomic_clear()? (Is atomic_bic() too ARM-centric?) > +} > +#endif > + > +static inline __deprecated void atomic_clear_mask(unsigned int mask, atomic_t *v) > +{ > + atomic_nand(mask, v); > +} Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html