By popular demand, a new and improved version :-) New since -v1 ( https://lkml.kernel.org/r/20230526150549.250372621@xxxxxxxxxxxxx ) - much improved interface for lock guards: guard() and scoped () { } as suggested by Linus. - moved the ';' for the 'last' additional guard members into the definition as suggested by Kees. - put __cleanup in the right place with the suggested comment as suggested by Kees and Miguel - renamed the definition macros DEFINE_LOCK_GUARD_[012] to indicate the number of arguments the lock function takes - added comments to guards.h - renamed pretty much all guard types Again compile and boot tested x86_64-defconfig