Messages in this thread Patch in this message |  | | From | Rajveer Chaudhari <> | | Subject | [PATCH 3/4] iio: accel: mma9551: convert to guard(mutex) | | Date | Mon, 9 Mar 2026 19:53:51 +0530 |
| |
Replace manual mutex_lock/mutex_unlock pair with guard(mutex) in mma9551_event_handler(). This ensures the mutex is released on all return paths and allows returning directly without a goto label.
Aligned headers in alphabatical order.
Signed-off-by: Rajveer Chaudhari <rajveer.chaudhari.linux@gmail.com> --- drivers/iio/accel/mma9551.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/iio/accel/mma9551.c b/drivers/iio/accel/mma9551.c index 02195deada49..0936b148e424 100644 --- a/drivers/iio/accel/mma9551.c +++ b/drivers/iio/accel/mma9551.c @@ -4,17 +4,21 @@ * Copyright (c) 2014, Intel Corporation. */ +#include <linux/cleanup.h> +#include <linux/delay.h> #include <linux/i2c.h> #include <linux/interrupt.h> #include <linux/mod_devicetable.h> #include <linux/module.h> +#include <linux/pm_runtime.h> #include <linux/slab.h> -#include <linux/delay.h> + #include <linux/gpio/consumer.h> + +#include <linux/iio/events.h> #include <linux/iio/iio.h> #include <linux/iio/sysfs.h> -#include <linux/iio/events.h> -#include <linux/pm_runtime.h> + #include "mma9551_core.h" #define MMA9551_GPIO_COUNT 4 @@ -337,7 +341,7 @@ static irqreturn_t mma9551_event_handler(int irq, void *private) u16 reg; u8 val; - mutex_lock(&data->mutex); + guard(mutex)(&data->mutex); for (i = 0; i < 3; i++) if (irq == data->irqs[i]) { @@ -349,7 +353,7 @@ static irqreturn_t mma9551_event_handler(int irq, void *private) /* IRQ was triggered on 4th line, which we don't use. */ dev_warn(&data->client->dev, "irq triggered on unused line %d\n", data->irqs[3]); - goto out; + return IRQ_HANDLED; } switch (mma_axis) { @@ -373,7 +377,7 @@ static irqreturn_t mma9551_event_handler(int irq, void *private) if (ret < 0) { dev_err(&data->client->dev, "error %d reading tilt register in IRQ\n", ret); - goto out; + return IRQ_HANDLED; } iio_push_event(indio_dev, @@ -381,9 +385,6 @@ static irqreturn_t mma9551_event_handler(int irq, void *private) IIO_EV_TYPE_ROC, IIO_EV_DIR_RISING), iio_get_time_ns(indio_dev)); -out: - mutex_unlock(&data->mutex); - return IRQ_HANDLED; } -- 2.53.0
|  |