| From 7b53f434172eb488a1fc84fe93af65df261e9287 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 30 Jul 2020 15:30:00 +0800 |
| Subject: net: gemini: Fix missing clk_disable_unprepare() in error path of |
| gemini_ethernet_port_probe() |
| |
| From: Wang Hai <wanghai38@huawei.com> |
| |
| [ Upstream commit 85496a29224188051b6135eb38da8afd4c584765 ] |
| |
| Fix the missing clk_disable_unprepare() before return |
| from gemini_ethernet_port_probe() in the error handling case. |
| |
| Fixes: 4d5ae32f5e1e ("net: ethernet: Add a driver for Gemini gigabit ethernet") |
| Reported-by: Hulk Robot <hulkci@huawei.com> |
| Signed-off-by: Wang Hai <wanghai38@huawei.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/cortina/gemini.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c |
| index 01a2120978360..f402af39da42a 100644 |
| --- a/drivers/net/ethernet/cortina/gemini.c |
| +++ b/drivers/net/ethernet/cortina/gemini.c |
| @@ -2451,6 +2451,7 @@ static int gemini_ethernet_port_probe(struct platform_device *pdev) |
| port->reset = devm_reset_control_get_exclusive(dev, NULL); |
| if (IS_ERR(port->reset)) { |
| dev_err(dev, "no reset\n"); |
| + clk_disable_unprepare(port->pclk); |
| return PTR_ERR(port->reset); |
| } |
| reset_control_reset(port->reset); |
| @@ -2506,8 +2507,10 @@ static int gemini_ethernet_port_probe(struct platform_device *pdev) |
| IRQF_SHARED, |
| port_names[port->id], |
| port); |
| - if (ret) |
| + if (ret) { |
| + clk_disable_unprepare(port->pclk); |
| return ret; |
| + } |
| |
| ret = register_netdev(netdev); |
| if (!ret) { |
| -- |
| 2.25.1 |
| |