summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>2026-01-09 17:57:51 +0100
committerRob Herring (Arm) <robh@kernel.org>2026-02-03 20:58:13 -0600
commit3bf312f30bdafd8ac40c995a34bbbf35681d6a4b (patch)
tree9c68df499ec31e0538bce81cb8393b67d3811ac0
parent2ff81fe310167349ea17c8b2b1d8fb2bc2d755ae (diff)
cdx: Use mutex guard to simplify error handling
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>
-rw-r--r--drivers/cdx/cdx.c11
1 files 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);