[PATCH 04/22] Input: cma3000_d0x - use guard notation when acquiring mutex

From: Dmitry Torokhov
Date: Wed Sep 04 2024 - 00:43:41 EST


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.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
---
drivers/input/misc/cma3000_d0x.c | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/input/misc/cma3000_d0x.c b/drivers/input/misc/cma3000_d0x.c
index 0c68e924a1cc..cfc12332bee1 100644
--- a/drivers/input/misc/cma3000_d0x.c
+++ b/drivers/input/misc/cma3000_d0x.c
@@ -217,15 +217,13 @@ static int cma3000_open(struct input_dev *input_dev)
{
struct cma3000_accl_data *data = input_get_drvdata(input_dev);

- mutex_lock(&data->mutex);
+ guard(mutex)(&data->mutex);

if (!data->suspended)
cma3000_poweron(data);

data->opened = true;

- mutex_unlock(&data->mutex);
-
return 0;
}

@@ -233,40 +231,34 @@ static void cma3000_close(struct input_dev *input_dev)
{
struct cma3000_accl_data *data = input_get_drvdata(input_dev);

- mutex_lock(&data->mutex);
+ guard(mutex)(&data->mutex);

if (!data->suspended)
cma3000_poweroff(data);

data->opened = false;
-
- mutex_unlock(&data->mutex);
}

void cma3000_suspend(struct cma3000_accl_data *data)
{
- mutex_lock(&data->mutex);
+ guard(mutex)(&data->mutex);

if (!data->suspended && data->opened)
cma3000_poweroff(data);

data->suspended = true;
-
- mutex_unlock(&data->mutex);
}
EXPORT_SYMBOL(cma3000_suspend);


void cma3000_resume(struct cma3000_accl_data *data)
{
- mutex_lock(&data->mutex);
+ guard(mutex)(&data->mutex);

if (data->suspended && data->opened)
cma3000_poweron(data);

data->suspended = false;
-
- mutex_unlock(&data->mutex);
}
EXPORT_SYMBOL(cma3000_resume);

--
2.46.0.469.g59c65b2a67-goog