]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Input: da7280 - use guard notation when acquiring mutex and spinlock
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 4 Sep 2024 04:42:25 +0000 (21:42 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 3 Oct 2024 16:10:35 +0000 (09:10 -0700)
Using guard notation makes the code more compact and error handling
more robust by ensuring that locks are released in all code paths
when control leaves critical section.

Reviewed-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Link: https://lore.kernel.org/r/20240904044244.1042174-6-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/misc/da7280.c

index 1629b7ea4cbd4a7b44ed9fb0c2c5b6a8fd82c375..e4a605c6af15080e413111d7fa0a28625d02e997 100644 (file)
@@ -1263,39 +1263,37 @@ static int da7280_suspend(struct device *dev)
 {
        struct da7280_haptic *haptics = dev_get_drvdata(dev);
 
-       mutex_lock(&haptics->input_dev->mutex);
+       guard(mutex)(&haptics->input_dev->mutex);
 
        /*
         * Make sure no new requests will be submitted while device is
         * suspended.
         */
-       spin_lock_irq(&haptics->input_dev->event_lock);
-       haptics->suspended = true;
-       spin_unlock_irq(&haptics->input_dev->event_lock);
+       scoped_guard(spinlock_irq, &haptics->input_dev->event_lock) {
+               haptics->suspended = true;
+       }
 
        da7280_haptic_stop(haptics);
 
-       mutex_unlock(&haptics->input_dev->mutex);
-
        return 0;
 }
 
 static int da7280_resume(struct device *dev)
 {
        struct da7280_haptic *haptics = dev_get_drvdata(dev);
-       int retval;
+       int error;
 
-       mutex_lock(&haptics->input_dev->mutex);
+       guard(mutex)(&haptics->input_dev->mutex);
 
-       retval = da7280_haptic_start(haptics);
-       if (!retval) {
-               spin_lock_irq(&haptics->input_dev->event_lock);
+       error = da7280_haptic_start(haptics);
+       if (error)
+               return error;
+
+       scoped_guard(spinlock_irq, &haptics->input_dev->event_lock) {
                haptics->suspended = false;
-               spin_unlock_irq(&haptics->input_dev->event_lock);
        }
 
-       mutex_unlock(&haptics->input_dev->mutex);
-       return retval;
+       return 0;
 }
 
 #ifdef CONFIG_OF