]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Input: hycon-hy46xx - use guard notation when acquiring mutex
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 18 Aug 2024 01:55:08 +0000 (18:55 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 25 Mar 2026 04:14:49 +0000 (21:14 -0700)
Guard notation simplifies code.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/hycon-hy46xx.c

index b2ff7a45b908539b930e0ff62c95e7952763d501..1513f20cbf51f3583da32158c18953dcc9ff3a00 100644 (file)
@@ -181,18 +181,17 @@ static ssize_t hycon_hy46xx_setting_show(struct device *dev,
        struct hycon_hy46xx_attribute *attr =
                        container_of(dattr, struct hycon_hy46xx_attribute, dattr);
        u8 *field = (u8 *)tsdata + attr->field_offset;
-       size_t count = 0;
        int error = 0;
        int val;
 
-       mutex_lock(&tsdata->mutex);
+       guard(mutex)(&tsdata->mutex);
 
        error = regmap_read(tsdata->regmap, attr->address, &val);
-       if (error < 0) {
+       if (error) {
                dev_err(&tsdata->client->dev,
                        "Failed to fetch attribute %s, error %d\n",
                        dattr->attr.name, error);
-               goto out;
+               return error;
        }
 
        if (val != *field) {
@@ -202,11 +201,7 @@ static ssize_t hycon_hy46xx_setting_show(struct device *dev,
                *field = val;
        }
 
-       count = sysfs_emit(buf, "%d\n", val);
-
-out:
-       mutex_unlock(&tsdata->mutex);
-       return error ?: count;
+       return sysfs_emit(buf, "%d\n", val);
 }
 
 static ssize_t hycon_hy46xx_setting_store(struct device *dev,
@@ -221,29 +216,25 @@ static ssize_t hycon_hy46xx_setting_store(struct device *dev,
        unsigned int val;
        int error;
 
-       mutex_lock(&tsdata->mutex);
+       guard(mutex)(&tsdata->mutex);
 
        error = kstrtouint(buf, 0, &val);
        if (error)
-               goto out;
+               return error;
 
-       if (val < attr->limit_low || val > attr->limit_high) {
-               error = -ERANGE;
-               goto out;
-       }
+       if (val < attr->limit_low || val > attr->limit_high)
+               return -ERANGE;
 
        error = regmap_write(tsdata->regmap, attr->address, val);
-       if (error < 0) {
+       if (error) {
                dev_err(&tsdata->client->dev,
                        "Failed to update attribute %s, error: %d\n",
                        dattr->attr.name, error);
-               goto out;
+               return error;
        }
        *field = val;
 
-out:
-       mutex_unlock(&tsdata->mutex);
-       return error ?: count;
+       return count;
 }
 
 static HYCON_ATTR_U8(threshold, 0644, HY46XX_THRESHOLD, 0, 255);