| From foo@baz Thu Mar 22 14:26:48 CET 2018 |
| From: Stefan Potyra <Stefan.Potyra@elektrobit.com> |
| Date: Wed, 6 Dec 2017 16:46:12 +0100 |
| Subject: serial: 8250_dw: Disable clock on error |
| |
| From: Stefan Potyra <Stefan.Potyra@elektrobit.com> |
| |
| |
| [ Upstream commit 8af016aa5a27c6a2505460eb4d83f1e70c38dc43 ] |
| |
| If there is no clock rate for uartclk defined, disable the previously |
| enabled clock again. |
| |
| Found by Linux Driver Verification project (linuxtesting.org). |
| |
| Fixes: 23f5b3fdd04e serial: 8250_dw: only get the clock rate in one place |
| Signed-off-by: Stefan Potyra <Stefan.Potyra@elektrobit.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/tty/serial/8250/8250_dw.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/tty/serial/8250/8250_dw.c |
| +++ b/drivers/tty/serial/8250/8250_dw.c |
| @@ -513,7 +513,8 @@ static int dw8250_probe(struct platform_ |
| /* If no clock rate is defined, fail. */ |
| if (!p->uartclk) { |
| dev_err(dev, "clock rate not defined\n"); |
| - return -EINVAL; |
| + err = -EINVAL; |
| + goto err_clk; |
| } |
| |
| data->pclk = devm_clk_get(dev, "apb_pclk"); |