]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cdx: Use mutex guard to simplify error handling
authorKrzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Fri, 9 Jan 2026 16:57:51 +0000 (17:57 +0100)
committerRob Herring (Arm) <robh@kernel.org>
Wed, 4 Feb 2026 02:58:13 +0000 (20:58 -0600)
Mutex guard allows to drop one goto/break in error handling and the
less expected code of assigning -EINVAL to unsigned size_t count
variable.

Suggested-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Link: https://patch.msgid.link/20260109-of-for-each-compatible-scoped-v3-7-c22fa2c0749a@oss.qualcomm.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
drivers/cdx/cdx.c

index bbde529aaa934f3eb0884db575a6e04d4e9b86e5..588dd12e81054c453fa3957935efb2f1844f5bc4 100644 (file)
@@ -616,7 +616,7 @@ static ssize_t rescan_store(const struct bus_type *bus,
        if (!val)
                return -EINVAL;
 
-       mutex_lock(&cdx_controller_lock);
+       guard(mutex)(&cdx_controller_lock);
 
        /* Unregister all the devices on the bus */
        cdx_unregister_devices(&cdx_bus_type);
@@ -624,10 +624,8 @@ static ssize_t rescan_store(const struct bus_type *bus,
        /* Rescan all the devices */
        for_each_compatible_node_scoped(np, NULL, compat_node_name) {
                pd = of_find_device_by_node(np);
-               if (!pd) {
-                       count = -EINVAL;
-                       goto unlock;
-               }
+               if (!pd)
+                       return -EINVAL;
 
                cdx = platform_get_drvdata(pd);
                if (cdx && cdx->controller_registered && cdx->ops->scan)
@@ -636,9 +634,6 @@ static ssize_t rescan_store(const struct bus_type *bus,
                put_device(&pd->dev);
        }
 
-unlock:
-       mutex_unlock(&cdx_controller_lock);
-
        return count;
 }
 static BUS_ATTR_WO(rescan);