Kees Cook <keescook@xxxxxxxxxxxx> wrote: > - return i + xadd(&v->counter, i); > + return wrapping_add(int, i, xadd(&v->counter, i)); Ewww. Can't you just mark the variable as wrapping in some way, either by: unsigned int __cyclic counter; or, to use rxrpc packet sequence numbers as an example: typedef unsigned int __cyclic rxrpc_seq_t; rxrpc_seq_t tx_top; Then you can get the compiler to spit out a warning if you use <, <=, > or >= on the numbers as an added bonus. (You should use before() and after() instead). David