From: Masahiro Yamada Date: Wed, 27 Dec 2017 05:21:05 +0000 (+0900) Subject: serial: 8250_of: fix return code when probe function fails to get reset X-Git-Tag: v4.16-rc1~113^2~14 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b9820a31691b771db37afe2054dd3d3a680c1eed;p=users%2Fjedix%2Flinux-maple.git 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: e2860e1f62f2 ("serial: 8250_of: Add reset support") Cc: stable@vger.kernel.org # v4.13+ Signed-off-by: Masahiro Yamada Reviewed-by: Philipp Zabel Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/tty/serial/8250/8250_of.c b/drivers/tty/serial/8250/8250_of.c index 1e67a7e4a5fd3..160b8906d9b9c 100644 --- a/drivers/tty/serial/8250/8250_of.c +++ b/drivers/tty/serial/8250/8250_of.c @@ -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); - if (IS_ERR(info->rst)) + if (IS_ERR(info->rst)) { + ret = PTR_ERR(info->rst); goto err_dispose; + } + ret = reset_control_deassert(info->rst); if (ret) goto err_dispose;