[PATCH] drm/msm: Move call to PTR_ERR_OR_ZERO after reassignment
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 = >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
[PATCH] drm/msm: Move call to PTR_ERR_OR_ZERO after reassignment
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 = >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
[PATCH] drm/msm: Move call to PTR_ERR_OR_ZERO after reassignment
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 = >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) { + 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