| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Pan Bian <bianpan2016@163.com> |
| Date: Sun, 23 Apr 2017 13:55:13 +0800 |
| Subject: usb: dwc3: keystone: check return value |
| |
| From: Pan Bian <bianpan2016@163.com> |
| |
| |
| [ Upstream commit 018047a1dba7636e1f7fdae2cc290a528991d648 ] |
| |
| Function devm_clk_get() returns an ERR_PTR when it fails. However, in |
| function kdwc3_probe(), its return value is not checked, which may |
| result in a bad memory access bug. This patch fixes the bug. |
| |
| Signed-off-by: Pan Bian <bianpan2016@163.com> |
| Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/dwc3/dwc3-keystone.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/drivers/usb/dwc3/dwc3-keystone.c |
| +++ b/drivers/usb/dwc3/dwc3-keystone.c |
| @@ -107,6 +107,10 @@ static int kdwc3_probe(struct platform_d |
| return PTR_ERR(kdwc->usbss); |
| |
| kdwc->clk = devm_clk_get(kdwc->dev, "usb"); |
| + if (IS_ERR(kdwc->clk)) { |
| + dev_err(kdwc->dev, "unable to get usb clock\n"); |
| + return PTR_ERR(kdwc->clk); |
| + } |
| |
| error = clk_prepare_enable(kdwc->clk); |
| if (error < 0) { |