From: Abhinav Kumar <quic_abhinavk@quicinc.com> To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie>, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, Stephen Boyd <swboyd@chromium.org>, freedreno@lists.freedesktop.org Subject: Re: [PATCH v5 5/6] drm/msm/dpu: fix error handling in dpu_rm_init Date: Mon, 14 Feb 2022 11:15:38 -0800 [thread overview] Message-ID: <5b517150-ae78-98c6-b9a8-d84905f38f56@quicinc.com> (raw) In-Reply-To: <20220121210618.3482550-6-dmitry.baryshkov@linaro.org> On 1/21/2022 1:06 PM, Dmitry Baryshkov wrote: > Using IS_ERR_OR_NULL() together with PTR_ERR() is a typical mistake. If > the value is NULL, then the function will return 0 instead of a proper > return code. Moreover none of dpu_hw_*_init() functions can return NULL. > So, replace all dpu_rm_init()'s IS_ERR_OR_NULL() calls with IS_ERR(). > Can you please give an example of a case where dpu_hw_*_init() can return NULL? All dpu_hw_*_init() functions are only called if the corresponding hw*_counts are valid. So I would like to understand this. Now, if NULL is treated as a non-error case, should we atleast print a message indicating so? > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > index 96554e962e38..7497538adae1 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > @@ -109,7 +109,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_lm_init(lm->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed lm object creation: err %d\n", rc); > goto fail; > @@ -126,7 +126,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_merge_3d_init(merge_3d->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed merge_3d object creation: err %d\n", > rc); > @@ -144,7 +144,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_pingpong_init(pp->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed pingpong object creation: err %d\n", > rc); > @@ -168,7 +168,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_intf_init(intf->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed intf object creation: err %d\n", rc); > goto fail; > @@ -185,7 +185,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_ctl_init(ctl->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed ctl object creation: err %d\n", rc); > goto fail; > @@ -202,7 +202,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_dspp_init(dspp->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed dspp object creation: err %d\n", rc); > goto fail;
WARNING: multiple messages have this Message-ID (diff)
From: Abhinav Kumar <quic_abhinavk@quicinc.com> To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run> Cc: Stephen Boyd <swboyd@chromium.org>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>, <linux-arm-msm@vger.kernel.org>, <dri-devel@lists.freedesktop.org>, <freedreno@lists.freedesktop.org> Subject: Re: [PATCH v5 5/6] drm/msm/dpu: fix error handling in dpu_rm_init Date: Mon, 14 Feb 2022 11:15:38 -0800 [thread overview] Message-ID: <5b517150-ae78-98c6-b9a8-d84905f38f56@quicinc.com> (raw) In-Reply-To: <20220121210618.3482550-6-dmitry.baryshkov@linaro.org> On 1/21/2022 1:06 PM, Dmitry Baryshkov wrote: > Using IS_ERR_OR_NULL() together with PTR_ERR() is a typical mistake. If > the value is NULL, then the function will return 0 instead of a proper > return code. Moreover none of dpu_hw_*_init() functions can return NULL. > So, replace all dpu_rm_init()'s IS_ERR_OR_NULL() calls with IS_ERR(). > Can you please give an example of a case where dpu_hw_*_init() can return NULL? All dpu_hw_*_init() functions are only called if the corresponding hw*_counts are valid. So I would like to understand this. Now, if NULL is treated as a non-error case, should we atleast print a message indicating so? > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > index 96554e962e38..7497538adae1 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > @@ -109,7 +109,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_lm_init(lm->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed lm object creation: err %d\n", rc); > goto fail; > @@ -126,7 +126,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_merge_3d_init(merge_3d->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed merge_3d object creation: err %d\n", > rc); > @@ -144,7 +144,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_pingpong_init(pp->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed pingpong object creation: err %d\n", > rc); > @@ -168,7 +168,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_intf_init(intf->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed intf object creation: err %d\n", rc); > goto fail; > @@ -185,7 +185,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_ctl_init(ctl->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed ctl object creation: err %d\n", rc); > goto fail; > @@ -202,7 +202,7 @@ int dpu_rm_init(struct dpu_rm *rm, > continue; > } > hw = dpu_hw_dspp_init(dspp->id, mmio, cat); > - if (IS_ERR_OR_NULL(hw)) { > + if (IS_ERR(hw)) { > rc = PTR_ERR(hw); > DPU_ERROR("failed dspp object creation: err %d\n", rc); > goto fail;
next prev parent reply other threads:[~2022-02-14 19:15 UTC|newest] Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-01-21 21:06 [PATCH v5 0/6] drm/msm/dpu: simplify RM code Dmitry Baryshkov 2022-01-21 21:06 ` Dmitry Baryshkov 2022-01-21 21:06 ` [PATCH v5 1/6] drm/msm/dpu: drop unused lm_max_width from RM Dmitry Baryshkov 2022-01-21 21:06 ` Dmitry Baryshkov 2022-02-10 0:08 ` [Freedreno] " Abhinav Kumar 2022-02-10 0:08 ` Abhinav Kumar 2022-01-21 21:06 ` [PATCH v5 2/6] drm/msm/dpu: add DSPP blocks teardown Dmitry Baryshkov 2022-01-21 21:06 ` Dmitry Baryshkov 2022-02-10 0:09 ` Abhinav Kumar 2022-02-10 0:09 ` Abhinav Kumar 2022-01-21 21:06 ` [PATCH v5 3/6] drm/msm/dpu: get INTF blocks directly rather than through RM Dmitry Baryshkov 2022-01-21 21:06 ` Dmitry Baryshkov 2022-02-10 0:25 ` Abhinav Kumar 2022-02-10 0:25 ` Abhinav Kumar 2022-02-10 9:32 ` Dmitry Baryshkov 2022-02-10 9:32 ` Dmitry Baryshkov 2022-02-10 23:31 ` [Freedreno] " Abhinav Kumar 2022-02-10 23:31 ` Abhinav Kumar 2022-02-11 13:47 ` Dmitry Baryshkov 2022-02-11 13:47 ` Dmitry Baryshkov 2022-02-12 1:08 ` Abhinav Kumar 2022-02-12 1:08 ` Abhinav Kumar 2022-01-21 21:06 ` [PATCH v5 4/6] drm/msm/dpu: stop embedding dpu_hw_blk into dpu_hw_intf Dmitry Baryshkov 2022-01-21 21:06 ` Dmitry Baryshkov 2022-02-14 19:08 ` Abhinav Kumar 2022-02-14 19:08 ` Abhinav Kumar 2022-01-21 21:06 ` [PATCH v5 5/6] drm/msm/dpu: fix error handling in dpu_rm_init Dmitry Baryshkov 2022-01-21 21:06 ` Dmitry Baryshkov 2022-02-14 19:15 ` Abhinav Kumar [this message] 2022-02-14 19:15 ` Abhinav Kumar 2022-02-14 20:43 ` Dmitry Baryshkov 2022-02-14 20:43 ` Dmitry Baryshkov 2022-02-14 21:25 ` Abhinav Kumar 2022-02-14 21:25 ` Abhinav Kumar 2022-01-21 21:06 ` [PATCH v5 6/6] drm/msm/dpu: move VBIF blocks handling to dpu_rm Dmitry Baryshkov 2022-01-21 21:06 ` Dmitry Baryshkov 2022-02-14 19:53 ` Abhinav Kumar 2022-02-14 19:53 ` Abhinav Kumar 2022-02-14 20:56 ` Dmitry Baryshkov 2022-02-14 20:56 ` Dmitry Baryshkov 2022-02-14 22:04 ` [Freedreno] " Abhinav Kumar 2022-02-14 22:04 ` Abhinav Kumar 2022-02-14 22:39 ` Dmitry Baryshkov 2022-02-14 22:39 ` Dmitry Baryshkov 2022-02-14 23:22 ` Abhinav Kumar 2022-02-14 23:22 ` Abhinav Kumar
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=5b517150-ae78-98c6-b9a8-d84905f38f56@quicinc.com \ --to=quic_abhinavk@quicinc.com \ --cc=airlied@linux.ie \ --cc=bjorn.andersson@linaro.org \ --cc=dmitry.baryshkov@linaro.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=robdclark@gmail.com \ --cc=sean@poorly.run \ --cc=swboyd@chromium.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.