On Tue, 2017-03-21 at 16:51 -0700, Kees Cook wrote: > Am I understanding you correctly that you'd want something like: > > refcount.h: > #ifdef UNPROTECTED_REFCOUNT > #define refcount_inc(x) atomic_inc(x) > ... > #else > void refcount_inc(... > ... > #endif > > some/net.c: > #define UNPROTECTED_REFCOUNT > #include <refcount.h> > > or similar? At first, it could be something simple like that yes. Note that we might define two refcount_inc() : One that does whole tests, and refcount_inc_relaxed() that might translate to atomic_inc() on non debug kernels. Then later, maybe provide a dynamic infrastructure so that we can dynamically force the full checks even for refcount_inc_relaxed() on say 1% of the hosts, to get better debug coverage ?