From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f196.google.com ([209.85.192.196]:35926 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750947AbeCHVma (ORCPT ); Thu, 8 Mar 2018 16:42:30 -0500 Date: Thu, 8 Mar 2018 13:42:27 -0800 From: Guenter Roeck To: Alexey Khoroshilov Cc: Eric Long , Wim Van Sebroeck , linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, ldv-project@linuxtesting.org Subject: Re: [PATCH] watchdog: sprd_wdt: Fix error handling in sprd_wdt_enable() Message-ID: <20180308214227.GA28321@roeck-us.net> References: <1520544108-11145-1-git-send-email-khoroshilov@ispras.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1520544108-11145-1-git-send-email-khoroshilov@ispras.ru> Sender: linux-watchdog-owner@vger.kernel.org List-Id: linux-watchdog@vger.kernel.org On Fri, Mar 09, 2018 at 12:21:48AM +0300, Alexey Khoroshilov wrote: > If clk_prepare_enable(wdt->rtc_enable) fails, > wdt->enable clock is left enabled. > > Found by Linux Driver Verification project (linuxtesting.org). > > Signed-off-by: Alexey Khoroshilov Reviewed-by: Guenter Roeck > --- > drivers/watchdog/sprd_wdt.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/watchdog/sprd_wdt.c b/drivers/watchdog/sprd_wdt.c > index a8b280ff33e0..b4d484a42b70 100644 > --- a/drivers/watchdog/sprd_wdt.c > +++ b/drivers/watchdog/sprd_wdt.c > @@ -154,8 +154,10 @@ static int sprd_wdt_enable(struct sprd_wdt *wdt) > if (ret) > return ret; > ret = clk_prepare_enable(wdt->rtc_enable); > - if (ret) > + if (ret) { > + clk_disable_unprepare(wdt->enable); > return ret; > + } > > sprd_wdt_unlock(wdt->base); > val = readl_relaxed(wdt->base + SPRD_WDT_CTRL); > -- > 2.7.4 >