Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751578AbcD1Mwi (ORCPT ); Thu, 28 Apr 2016 08:52:38 -0400 Received: from mailapp01.imgtec.com ([195.59.15.196]:24128 "EHLO mailapp01.imgtec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750809AbcD1Mwh (ORCPT ); Thu, 28 Apr 2016 08:52:37 -0400 Date: Thu, 28 Apr 2016 13:53:01 +0100 From: Eric Engestrom To: Vaishali Thakkar CC: , , Subject: Re: [PATCH] drm/msm: Move call to PTR_ERR_OR_ZERO after reassignment Message-ID: <20160428125301.GY32731@imgtec.com> References: <1461756097-20799-1-git-send-email-vaishali.thakkar@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline In-Reply-To: <1461756097-20799-1-git-send-email-vaishali.thakkar@oracle.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Originating-IP: [10.60.4.28] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1925 Lines: 58 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); > + 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