From: Krzysztof Kozlowski Date: Fri, 9 Jan 2026 16:57:51 +0000 (+0100) Subject: cdx: Use mutex guard to simplify error handling X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3bf312f30bdafd8ac40c995a34bbbf35681d6a4b;p=thirdparty%2Fkernel%2Flinux.git 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 Signed-off-by: Krzysztof Kozlowski Reviewed-by: Jonathan Cameron Link: https://patch.msgid.link/20260109-of-for-each-compatible-scoped-v3-7-c22fa2c0749a@oss.qualcomm.com Signed-off-by: Rob Herring (Arm) --- diff --git a/drivers/cdx/cdx.c b/drivers/cdx/cdx.c index bbde529aaa934..588dd12e81054 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);