Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752751AbcD1NXt (ORCPT ); Thu, 28 Apr 2016 09:23:49 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:26935 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752507AbcD1NXr (ORCPT ); Thu, 28 Apr 2016 09:23:47 -0400 Subject: Re: [PATCH] drm/msm: Move call to PTR_ERR_OR_ZERO after reassignment To: Eric Engestrom References: <1461756097-20799-1-git-send-email-vaishali.thakkar@oracle.com> <20160428125301.GY32731@imgtec.com> Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org From: Vaishali Thakkar Message-ID: <57220ECF.5000005@oracle.com> Date: Thu, 28 Apr 2016 18:53:27 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20160428125301.GY32731@imgtec.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Source-IP: userv0022.oracle.com [156.151.31.74] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2079 Lines: 67 On Thursday 28 April 2016 06:23 PM, Eric Engestrom wrote: > On Wed, Apr 27, 2016 at 04:51:37PM +0530, Vaishali Thakkar wrote: >> Here, a location is reset to NULL before being passed to PTR_ERR. >> So, PTR_ERR should be called before its argument is reassigned >> to NULL. Further to simplify things use PTR_ERR_OR_ZERO instead >> of PTR_ERR and IS_ERR. >> >> Problem found using Coccinelle. >> >> Signed-off-by: Vaishali Thakkar >> --- >> drivers/gpu/drm/msm/edp/edp_ctrl.c | 16 +++++++++------- >> 1 file changed, 9 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/gpu/drm/msm/edp/edp_ctrl.c b/drivers/gpu/drm/msm/edp/edp_ctrl.c >> index 81200e9..7816541 100644 >> --- a/drivers/gpu/drm/msm/edp/edp_ctrl.c >> +++ b/drivers/gpu/drm/msm/edp/edp_ctrl.c >> @@ -302,21 +302,23 @@ static void edp_clk_disable(struct edp_ctrl *ctrl, u32 clk_mask) >> static int edp_regulator_init(struct edp_ctrl *ctrl) >> { >> struct device *dev = &ctrl->pdev->dev; >> + int ret; >> >> DBG(""); >> ctrl->vdda_vreg = devm_regulator_get(dev, "vdda"); >> - if (IS_ERR(ctrl->vdda_vreg)) { >> + ret = PTR_ERR_OR_ZERO(ctrl->vdda_vreg); >> + if (ret) { >> pr_err("%s: Could not get vdda reg, ret = %ld\n", __func__, >> - PTR_ERR(ctrl->vdda_vreg)); >> + ret); >> ctrl->vdda_vreg = NULL; >> - return PTR_ERR(ctrl->vdda_vreg); >> + return ret; >> } >> ctrl->lvl_vreg = devm_regulator_get(dev, "lvl-vdd"); >> - if (IS_ERR(ctrl->lvl_vreg)) { >> - pr_err("Could not get lvl-vdd reg, %ld", >> - PTR_ERR(ctrl->lvl_vreg)); >> + ret = PTR_ERR_OR_ZERO(ctrl->lvl_vreg); >> + if (ret) { > > While you're rewriting them, it might be worth making these two pr_err() > print the same format, e.g.: > > pr_err("%s: Could not get lvl-vdd reg, ret = %ld\n", __func__, ret); Done, thanks. >> + pr_err("Could not get lvl-vdd reg, %ld", ret); >> ctrl->lvl_vreg = NULL; >> - return PTR_ERR(ctrl->lvl_vreg); >> + return ret; >> } >> >> return 0; >> -- >> 2.1.4 > > Reviewed-by: Eric Engestrom > -- Vaishali