Commit db238086 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Philipp Zabel
Browse files

reset: Do not register resource data for missing resets



When an optional reset is not present, __devm_reset_control_get() and
devm_reset_control_array_get() still register resource data to release
the non-existing reset on cleanup, which is futile.

Fix this by skipping NULL reset control pointers.

Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
parent 723c0011
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -787,7 +787,7 @@ struct reset_control *__devm_reset_control_get(struct device *dev,
		return ERR_PTR(-ENOMEM);

	rstc = __reset_control_get(dev, id, index, shared, optional, acquired);
	if (!IS_ERR(rstc)) {
	if (!IS_ERR_OR_NULL(rstc)) {
		*ptr = rstc;
		devres_add(dev, ptr);
	} else {
@@ -928,7 +928,7 @@ devm_reset_control_array_get(struct device *dev, bool shared, bool optional)
		return ERR_PTR(-ENOMEM);

	rstc = of_reset_control_array_get(dev->of_node, shared, optional, true);
	if (IS_ERR(rstc)) {
	if (IS_ERR_OR_NULL(rstc)) {
		devres_free(devres);
		return rstc;
	}