Unverified Commit 719af321 authored by Charles Keepax's avatar Charles Keepax Committed by Mark Brown
Browse files

spi: cs42l43: Use devm_add_action_or_reset()



Use devm_add_action_or_reset() rather than manually cleaning up on the
error path.

Suggested-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20240417093026.79396-1-ckeepax@opensource.cirrus.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 1f48cbd6
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -345,12 +345,10 @@ static int cs42l43_spi_probe(struct platform_device *pdev)

	if (is_of_node(fwnode)) {
		fwnode = fwnode_get_named_child_node(fwnode, "spi");
		ret = devm_add_action(priv->dev, cs42l43_release_of_node, fwnode);
		if (ret) {
			fwnode_handle_put(fwnode);
		ret = devm_add_action_or_reset(priv->dev, cs42l43_release_of_node, fwnode);
		if (ret)
			return ret;
	}
	}

	if (has_sidecar) {
		ret = software_node_register(&cs42l43_gpiochip_swnode);
@@ -358,11 +356,9 @@ static int cs42l43_spi_probe(struct platform_device *pdev)
			return dev_err_probe(priv->dev, ret,
					     "Failed to register gpio swnode\n");

		ret = devm_add_action(priv->dev, cs42l43_release_sw_node, NULL);
		if (ret) {
			software_node_unregister(&cs42l43_gpiochip_swnode);
		ret = devm_add_action_or_reset(priv->dev, cs42l43_release_sw_node, NULL);
		if (ret)
			return ret;
		}

		ret = device_create_managed_software_node(&priv->ctlr->dev,
							  cs42l43_cs_props, NULL);