On Wed, Sep 23, 2020 at 05:15:03PM +0200, Maximilian Luz wrote: > +/* -- Safe counters. -------------------------------------------------------- */ > + > +/** > + * ssh_seq_reset() - Reset/initialize sequence ID counter. > + * @c: The counter to reset. > + */ > +static void ssh_seq_reset(struct ssh_seq_counter *c) > +{ > + WRITE_ONCE(c->value, 0); > +} These "counters" are odd, what exactly are they? They seem like a simple atomic counter, but not quite, so you have rolled your own pseudo-atomic variable. Are you sure that it works properly? If so, how? What about just using an ida/idr structure instead? Or just a simple atomic counter that avoids the values you can't touch, or better yet, a simple number with a correct lock protecting it :) thanks, greg k-h