On Fri, Aug 23, 2024 at 10:52:54AM +0200, Krzysztof Kozlowski wrote: > On 23/08/2024 10:32, Dmitry Torokhov wrote: > > On Fri, Aug 23, 2024 at 08:06:17AM +0200, Krzysztof Kozlowski wrote: > >> On 22/08/2024 20:07, Dmitry Torokhov wrote: > >>> On Thu, Aug 22, 2024 at 05:48:33PM +0200, Krzysztof Kozlowski wrote: > >>>> On Sun, Aug 18, 2024 at 09:58:03PM -0700, Dmitry Torokhov wrote: > >>>>> Guard notation is more compact and ensures that the mutex will be > >>>>> released when control leaves the function. > >>>>> > >>>>> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > >>>>> --- > >>>>> drivers/input/keyboard/samsung-keypad.c | 8 ++------ > >>>>> 1 file changed, 2 insertions(+), 6 deletions(-) > >>>>> > >>>> > >>>> You need to include cleanup.h (unless some other patch already did it > >>>> and I missed it?) > >>> > >>> Guard for mutexes defined in mutex.h which is pulled in indirectly, and > >> > >> guard() is not in mutex.h and in general we are including headers for > >> the things directly used in the unit. > > > > Oh, but it is: > > > > https://elixir.bootlin.com/linux/v6.10/source/include/linux/mutex.h#L196 > > > > DEFINE_GUARD(mutex, struct mutex *, mutex_lock(_T), mutex_unlock(_T)) > > That's DEFINE_GUARD, not guard(). OK, I see what you mean. I believe that cleanup.h is too low level to include directly by anyone who does not actually define a new guard or destructor routine. The concrete implementations of needed guards and all necessary support is pulled together with the headers defining the primary objects (mutex, spinlock, etc). Thanks. -- Dmitry