Input: pwm-beeper - use guard notation when acquiring spinlock
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 4 Sep 2024 04:49:12 +0000 (21:49 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 3 Oct 2024 16:10:37 +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/20240904044914.1049280-1-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/misc/pwm-beeper.c

index 5b9aedf..0e19e97 100644 (file)
@@ -203,9 +203,9 @@ static int pwm_beeper_suspend(struct device *dev)
         * beeper->suspended, but to ensure that pwm_beeper_event
         * does not re-submit work once flag is set.
         */
-       spin_lock_irq(&beeper->input->event_lock);
-       beeper->suspended = true;
-       spin_unlock_irq(&beeper->input->event_lock);
+       scoped_guard(spinlock_irq, &beeper->input->event_lock) {
+               beeper->suspended = true;
+       }
 
        pwm_beeper_stop(beeper);
 
@@ -216,9 +216,9 @@ static int pwm_beeper_resume(struct device *dev)
 {
        struct pwm_beeper *beeper = dev_get_drvdata(dev);
 
-       spin_lock_irq(&beeper->input->event_lock);
-       beeper->suspended = false;
-       spin_unlock_irq(&beeper->input->event_lock);
+       scoped_guard(spinlock_irq, &beeper->input->event_lock) {
+               beeper->suspended = false;
+       }
 
        /* Let worker figure out if we should resume beeping */
        schedule_work(&beeper->work);