From: Liu Xiang Date: Fri, 29 May 2020 15:24:56 +0000 (+0800) Subject: net: fec: disable correct clk in the err path of fec_enet_clk_enable X-Git-Tag: baikal/aarch64/sdk6.1~9212^2~28 X-Git-Url: https://git.baikalelectronics.ru/sdk/?a=commitdiff_plain;h=c52174aba6da8da0aa2b3aaa1844875b6bc677fc;p=kernel.git net: fec: disable correct clk in the err path of fec_enet_clk_enable When enable clk_ref failed, clk_ptp should be disabled rather than clk_ref itself. Signed-off-by: Liu Xiang Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 4acb91dce5fc3..2d0d313ee7c5a 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -1981,8 +1981,12 @@ static int fec_enet_clk_enable(struct net_device *ndev, bool enable) return 0; failed_clk_ref: - if (fep->clk_ref) - clk_disable_unprepare(fep->clk_ref); + if (fep->clk_ptp) { + mutex_lock(&fep->ptp_clk_mutex); + clk_disable_unprepare(fep->clk_ptp); + fep->ptp_clk_on = false; + mutex_unlock(&fep->ptp_clk_mutex); + } failed_clk_ptp: if (fep->clk_enet_out) clk_disable_unprepare(fep->clk_enet_out);