Input: da7280 - use guard notation when acquiring mutex and 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/20240904044244.1042174-6-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
Dmitry Torokhov 2024-09-03 21:42:25 -07:00
parent 0cc842d191
commit 1313f0ad81

View 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