Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754304AbcKONoD (ORCPT ); Tue, 15 Nov 2016 08:44:03 -0500 Received: from lelnx194.ext.ti.com ([198.47.27.80]:61174 "EHLO lelnx194.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751693AbcKONoC (ORCPT ); Tue, 15 Nov 2016 08:44:02 -0500 Subject: Re: [PATCH -next] phy: meson8b-usb2: fix missing clk_disable_unprepare() on error To: Wei Yongjun , Carlo Caione , Kevin Hilman References: <1477146822-31327-1-git-send-email-weiyj.lk@gmail.com> CC: Wei Yongjun , , , From: Kishon Vijay Abraham I Message-ID: <582B10D6.9040003@ti.com> Date: Tue, 15 Nov 2016 19:12:46 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <1477146822-31327-1-git-send-email-weiyj.lk@gmail.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1208 Lines: 39 On Saturday 22 October 2016 08:03 PM, Wei Yongjun wrote: > From: Wei Yongjun > > Fix the missing clk_disable_unprepare() before return from > phy_meson8b_usb2_power_on() in the error handling case. > > Signed-off-by: Wei Yongjun merged, thanks. -Kishon > --- > drivers/phy/phy-meson8b-usb2.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/phy/phy-meson8b-usb2.c b/drivers/phy/phy-meson8b-usb2.c > index 73bf632..dca3947 100644 > --- a/drivers/phy/phy-meson8b-usb2.c > +++ b/drivers/phy/phy-meson8b-usb2.c > @@ -158,6 +158,7 @@ static int phy_meson8b_usb2_power_on(struct phy *phy) > ret = clk_prepare_enable(priv->clk_usb); > if (ret) { > dev_err(&phy->dev, "Failed to enable USB DDR clock\n"); > + clk_disable_unprepare(priv->clk_usb_general); > return ret; > } > > @@ -190,6 +191,8 @@ static int phy_meson8b_usb2_power_on(struct phy *phy) > if (phy_meson8b_usb2_read(priv, REG_ADP_BC) & > REG_ADP_BC_ACA_PIN_FLOAT) { > dev_warn(&phy->dev, "USB ID detect failed!\n"); > + clk_disable_unprepare(priv->clk_usb); > + clk_disable_unprepare(priv->clk_usb_general); > return -EINVAL; > } > } >