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 <[email protected]>
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
 drivers/cdx/cdx.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/cdx/cdx.c b/drivers/cdx/cdx.c
index bbde529aaa93..588dd12e8105 100644
--- a/drivers/cdx/cdx.c
+++ b/drivers/cdx/cdx.c
@@ -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);

-- 
2.51.0


Reply via email to