mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 12:03:54 +02:00
Input: regulator-haptic - use guard notation when acquiring mutex
Using guard notation makes the code more compact and error handling more robust by ensuring that mutexes 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/ZtjJKxQRRzJE0aWZ@google.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
5bd3ade121
commit
2dc387620b
|
|
@ -83,12 +83,10 @@ static void regulator_haptic_work(struct work_struct *work)
|
|||
struct regulator_haptic *haptic = container_of(work,
|
||||
struct regulator_haptic, work);
|
||||
|
||||
mutex_lock(&haptic->mutex);
|
||||
guard(mutex)(&haptic->mutex);
|
||||
|
||||
if (!haptic->suspended)
|
||||
regulator_haptic_set_voltage(haptic, haptic->magnitude);
|
||||
|
||||
mutex_unlock(&haptic->mutex);
|
||||
}
|
||||
|
||||
static int regulator_haptic_play_effect(struct input_dev *input, void *data,
|
||||
|
|
@ -205,19 +203,15 @@ static int regulator_haptic_suspend(struct device *dev)
|
|||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
struct regulator_haptic *haptic = platform_get_drvdata(pdev);
|
||||
int error;
|
||||
|
||||
error = mutex_lock_interruptible(&haptic->mutex);
|
||||
if (error)
|
||||
return error;
|
||||
scoped_guard(mutex_intr, &haptic->mutex) {
|
||||
regulator_haptic_set_voltage(haptic, 0);
|
||||
haptic->suspended = true;
|
||||
|
||||
regulator_haptic_set_voltage(haptic, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
haptic->suspended = true;
|
||||
|
||||
mutex_unlock(&haptic->mutex);
|
||||
|
||||
return 0;
|
||||
return -EINTR;
|
||||
}
|
||||
|
||||
static int regulator_haptic_resume(struct device *dev)
|
||||
|
|
@ -226,7 +220,7 @@ static int regulator_haptic_resume(struct device *dev)
|
|||
struct regulator_haptic *haptic = platform_get_drvdata(pdev);
|
||||
unsigned int magnitude;
|
||||
|
||||
mutex_lock(&haptic->mutex);
|
||||
guard(mutex)(&haptic->mutex);
|
||||
|
||||
haptic->suspended = false;
|
||||
|
||||
|
|
@ -234,8 +228,6 @@ static int regulator_haptic_resume(struct device *dev)
|
|||
if (magnitude)
|
||||
regulator_haptic_set_voltage(haptic, magnitude);
|
||||
|
||||
mutex_unlock(&haptic->mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user