Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: pwm-beeper - use guard notation when acquiring spinlock

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>

+6 -6
+6 -6
drivers/input/misc/pwm-beeper.c
··· 203 203 * beeper->suspended, but to ensure that pwm_beeper_event 204 204 * does not re-submit work once flag is set. 205 205 */ 206 - spin_lock_irq(&beeper->input->event_lock); 207 - beeper->suspended = true; 208 - spin_unlock_irq(&beeper->input->event_lock); 206 + scoped_guard(spinlock_irq, &beeper->input->event_lock) { 207 + beeper->suspended = true; 208 + } 209 209 210 210 pwm_beeper_stop(beeper); 211 211 ··· 216 216 { 217 217 struct pwm_beeper *beeper = dev_get_drvdata(dev); 218 218 219 - spin_lock_irq(&beeper->input->event_lock); 220 - beeper->suspended = false; 221 - spin_unlock_irq(&beeper->input->event_lock); 219 + scoped_guard(spinlock_irq, &beeper->input->event_lock) { 220 + beeper->suspended = false; 221 + } 222 222 223 223 /* Let worker figure out if we should resume beeping */ 224 224 schedule_work(&beeper->work);