Received: by 10.192.165.148 with SMTP id m20csp4156868imm; Tue, 8 May 2018 04:02:48 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqbD6lAKi9qQ8wAwr1i/0Yl/LGYODBoqAO0JBq9AITMFTzd22BJA8ts8+BpWEC2mXXPc1GY X-Received: by 2002:a65:47c8:: with SMTP id f8-v6mr19734121pgs.430.1525777368788; Tue, 08 May 2018 04:02:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525777368; cv=none; d=google.com; s=arc-20160816; b=maSKu0dGvxxoi5OaH2sWoQhBUWrQp/5CNP62xlGnaE19mL9FlKa5XF3p2znY+W8v4m pzNn5ruMSar3awzuqT+lBF1HL+Yr2fLmVc+zUiB60FKLWinauTwPWawZV1nedj6bLtCK vfA1YYSQKsvHfMIpC2EV77W2QTkc6E3OziA4YCpuBz9sPTd2sG48O9eb9bmlwX6StpJJ tty0m63NfGPIXQevb7aXdOalR1Nn8bKzXkpD9h2x1QrRLo00hMsdOrEQcCjgqBYzukgZ M8GVdtVQ1/VWSSfzWwFyzc6zJxCPvlzz/j8q4vOd3F69Rt+KXkXm5b4OrW2g2Wdpxc6k wCtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:date:message-id :mime-version:subject:references:in-reply-to:cc:to:envelope-from :from:dkim-signature:arc-authentication-results; bh=pZKG8s2N3BqSZrRpwOnCxELDlAnbiPIneigIBImz/wc=; b=g76Fqo2myXIsdjVW6v+lCytdLG5Ba1+7H6ldFDvBsJ42pqeq52BVS4toCIhKXL1caE UGd8O3LdCuz0/5ZIVtsdEOw5lKKk404/OPwH6QQD3lQxskQKrPE+JeJkI9qrG336wAru 3Vm2VdqSZrlv91g3+Ejf301IsGb9FC4ekMmpSR4tqOhsNhMVoemC5zHk0sV+tyTmxrze HxAyVTNDzFmL1Z1F0PYZVFZyjRoSYnUdxdCZrofOvklY5oKk5rhwIlWD5AygKvE0fKCk VbglTmqbC8zr5R04wmsQKCSWXWJVUamkaZ7m/jQ1luBHnItLf6RRnRlwfw0f5R6wTJ0A 5P+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@yandex.ru header.s=mail header.b=aZIcWwZK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v2-v6si19173931pgf.75.2018.05.08.04.02.34; Tue, 08 May 2018 04:02:48 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@yandex.ru header.s=mail header.b=aZIcWwZK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752406AbeEHLCX (ORCPT + 99 others); Tue, 8 May 2018 07:02:23 -0400 Received: from forward3o.cmail.yandex.net ([37.9.109.247]:43611 "EHLO forward3o.cmail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750973AbeEHLCV (ORCPT ); Tue, 8 May 2018 07:02:21 -0400 Received: from mxback6j.mail.yandex.net (mxback6j.mail.yandex.net [IPv6:2a02:6b8:0:1619::10f]) by forward3o.cmail.yandex.net (Yandex) with ESMTP id 5C38020C5F; Tue, 8 May 2018 14:02:19 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback6j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id l50iRRrEO5-2HkCHSV4; Tue, 08 May 2018 14:02:17 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1525777337; bh=pZKG8s2N3BqSZrRpwOnCxELDlAnbiPIneigIBImz/wc=; h=From:To:Cc:In-Reply-To:References:Subject:Message-Id:Date; b=aZIcWwZK3cpO8r7ppvWfctPMS/0du0d9XcP3cTPubtD+Fsp1VwpkgpJDfdBhkOR4G E6NvbegAxAeJos6ZqcUKYCxOnPiAw+2XQToOZCFuS66ARHG+H0mHojBRlUSZqI2IRF PJ/MZozaKFw3OC/3YY2zPN9T4lYWADhWDod6j3Ww= Authentication-Results: mxback6j.mail.yandex.net; dkim=pass header.i=@yandex.ru Received: by web22j.yandex.ru with HTTP; Tue, 08 May 2018 14:02:17 +0300 From: Evgeniy Polyakov Envelope-From: drustafa@yandex.ru To: Stefan Potyra Cc: "linux-kernel@vger.kernel.org" , Greg Kroah-Hartman , "ldv-project@linuxtesting.org" , "sil2review@lists.osadl.org" In-Reply-To: <20180502085531.GA10525@er01809n.ebgroup.elektrobit.com> References: <20180419130254.7nriykiybpyi6j2g@agrajag.zerfleddert.de> <4863111525100577@web2o.yandex.ru> <20180502083420.GA8549@er01809n.ebgroup.elektrobit.com> <20180502085531.GA10525@er01809n.ebgroup.elektrobit.com> Subject: Re: [PATCH v2] w1: mxc_w1: Enable clock before calling clk_get_rate() on it MIME-Version: 1.0 Message-Id: <692971525777337@web22j.yandex.ru> X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Tue, 08 May 2018 14:02:17 +0300 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Stefan 02.05.2018, 11:55, "Stefan Potyra" : > According to the API, you may only call clk_get_rate() after actually > enabling it. > > Found by Linux Driver Verification project (linuxtesting.org). > > Fixes: a5fd9139f74c ("w1: add 1-wire master driver for i.MX27 / i.MX31") > Signed-off-by: Stefan Potyra Looks good to me, thank you! Greg, please pull it into your tree, this also sounds like stable material, is it? Acked-by: Evgeniy Polyakov > --- >  drivers/w1/masters/mxc_w1.c | 20 +++++++++++++------- >  1 file changed, 13 insertions(+), 7 deletions(-) > > diff --git a/drivers/w1/masters/mxc_w1.c b/drivers/w1/masters/mxc_w1.c > index 74f2e6e6202a..8851d441e5fd 100644 > --- a/drivers/w1/masters/mxc_w1.c > +++ b/drivers/w1/masters/mxc_w1.c > @@ -112,6 +112,10 @@ static int mxc_w1_probe(struct platform_device *pdev) >          if (IS_ERR(mdev->clk)) >                  return PTR_ERR(mdev->clk); > > + err = clk_prepare_enable(mdev->clk); > + if (err) > + return err; > + >          clkrate = clk_get_rate(mdev->clk); >          if (clkrate < 10000000) >                  dev_warn(&pdev->dev, > @@ -125,12 +129,10 @@ static int mxc_w1_probe(struct platform_device *pdev) > >          res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >          mdev->regs = devm_ioremap_resource(&pdev->dev, res); > - if (IS_ERR(mdev->regs)) > - return PTR_ERR(mdev->regs); > - > - err = clk_prepare_enable(mdev->clk); > - if (err) > - return err; > + if (IS_ERR(mdev->regs)) { > + err = PTR_ERR(mdev->regs); > + goto out_disable_clk; > + } > >          /* Software reset 1-Wire module */ >          writeb(MXC_W1_RESET_RST, mdev->regs + MXC_W1_RESET); > @@ -146,8 +148,12 @@ static int mxc_w1_probe(struct platform_device *pdev) > >          err = w1_add_master_device(&mdev->bus_master); >          if (err) > - clk_disable_unprepare(mdev->clk); > + goto out_disable_clk; > > + return 0; > + > +out_disable_clk: > + clk_disable_unprepare(mdev->clk); >          return err; >  } > > -- > 2.17.0