On Tue, Nov 10, 2020 at 09:43:02PM +0100, Greg KH wrote: > On Tue, Nov 10, 2020 at 09:41:40PM +0100, Greg KH wrote: > > On Tue, Nov 10, 2020 at 12:53:27PM -0700, Shuah Khan wrote: > > > +Decrement interface > > > +------------------- > > > + > > > +Decrements sequence number and doesn't return the new value. :: > > > + > > > + seqnum32_dec() --> atomic_dec() > > > + seqnum64_dec() --> atomic64_dec() > > > > Why would you need to decrement a sequence number? Shouldn't they just > > always go up? > > > > I see you use them in your patch 12/13, but I don't think that really is > > a sequence number there, but rather just some other odd value :) To that end, they should likely be internally cast to u32 and u64 (and why is seqnum64 ifdef on CONFIG_64BIT?). > Note, other than this, I like the idea. It makes it obvious what these > atomic variables are being used for, and they can't be abused for other > things. Nice work. Agreed: this is a clear wrapping sequence counter. It's only abuse would be using it in a place where wrapping actually is _not_ safe. (bikeshed: can we call it wrap_u32 and wrap_u64?) -- Kees Cook