Commit 3bf312f3 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Rob Herring (Arm)
Browse files

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: default avatarJonathan Cameron <jonathan.cameron@huawei.com>
Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: default avatarJonathan 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: default avatarRob Herring (Arm) <robh@kernel.org>
parent 2ff81fe3
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -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);