Re: [PATCH 1/4] locking/atomic/x86: Silence intentional wrapping addition
From: David Howells
Date: Fri Apr 26 2024 - 03:41:13 EST
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