diff options
| author | Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> | 2026-01-09 17:57:51 +0100 |
|---|---|---|
| committer | Rob Herring (Arm) <robh@kernel.org> | 2026-02-03 20:58:13 -0600 |
| commit | 3bf312f30bdafd8ac40c995a34bbbf35681d6a4b (patch) | |
| tree | 9c68df499ec31e0538bce81cb8393b67d3811ac0 | |
| parent | 2ff81fe310167349ea17c8b2b1d8fb2bc2d755ae (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.c | 11 |
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); |
