Commit b9820a31 authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Greg Kroah-Hartman

serial: 8250_of: fix return code when probe function fails to get reset

The error pointer from devm_reset_control_get_optional_shared() is
not propagated.

One of the most common problem scenarios is it returns -EPROBE_DEFER
when the reset controller has not probed yet.  In this case, the
probe of the reset consumer should be deferred.

Fixes: e2860e1f ("serial: 8250_of: Add reset support")
Cc: stable@vger.kernel.org # v4.13+
Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 38b1f0fb
...@@ -136,8 +136,11 @@ static int of_platform_serial_setup(struct platform_device *ofdev, ...@@ -136,8 +136,11 @@ static int of_platform_serial_setup(struct platform_device *ofdev,
} }
info->rst = devm_reset_control_get_optional_shared(&ofdev->dev, NULL); info->rst = devm_reset_control_get_optional_shared(&ofdev->dev, NULL);
if (IS_ERR(info->rst)) if (IS_ERR(info->rst)) {
ret = PTR_ERR(info->rst);
goto err_dispose; goto err_dispose;
}
ret = reset_control_deassert(info->rst); ret = reset_control_deassert(info->rst);
if (ret) if (ret)
goto err_dispose; goto err_dispose;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment