]> www.infradead.org Git - linux.git/commitdiff
Input: wacom_w8001 - use "guard" notation when acquiring mutex
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 12 Jun 2024 05:31:42 +0000 (22:31 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 28 Jun 2024 22:06:29 +0000 (15:06 -0700)
Switch the driver to use guard notation when acquiring mutex to
have it released automatically.

Link: https://lore.kernel.org/r/Zmkyvkr9AFyywy1V@google.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/wacom_w8001.c

index c8abb9557ee86d8005cb2cf3d10a95afd7a55fe6..ed2ca8a689d57fb9c44c71ff707b638dbad138de 100644 (file)
@@ -380,30 +380,28 @@ static int w8001_open(struct input_dev *dev)
        struct w8001 *w8001 = input_get_drvdata(dev);
        int err;
 
-       err = mutex_lock_interruptible(&w8001->mutex);
-       if (err)
-               return err;
+       scoped_guard(mutex_intr, &w8001->mutex) {
+               if (w8001->open_count == 0) {
+                       err = w8001_command(w8001, W8001_CMD_START, false);
+                       if (err)
+                               return err;
+               }
 
-       if (w8001->open_count++ == 0) {
-               err = w8001_command(w8001, W8001_CMD_START, false);
-               if (err)
-                       w8001->open_count--;
+               w8001->open_count++;
+               return 0;
        }
 
-       mutex_unlock(&w8001->mutex);
-       return err;
+       return -EINTR;
 }
 
 static void w8001_close(struct input_dev *dev)
 {
        struct w8001 *w8001 = input_get_drvdata(dev);
 
-       mutex_lock(&w8001->mutex);
+       guard(mutex)(&w8001->mutex);
 
        if (--w8001->open_count == 0)
                w8001_command(w8001, W8001_CMD_STOP, false);
-
-       mutex_unlock(&w8001->mutex);
 }
 
 static int w8001_detect(struct w8001 *w8001)