Message ID | 20220422084951.2776123-1-lv.ruyi@zte.com.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/msm/dp: fix error check return value of irq_of_parse_and_map() | expand |
On Fri, 22 Apr 2022 at 11:50, <cgel.zte@gmail.com> wrote: > > From: Lv Ruyi <lv.ruyi@zte.com.cn> > > The irq_of_parse_and_map() function returns 0 on failure, and does not > return an negative value. > > Fixes: 8ede2ecc3e5e ("drm/msm/dp: Add DP compliance tests on Snapdragon Chipsets") > Reported-by: Zeal Robot <zealci@zte.com.cn> > Signed-off-by: Lv Ruyi <lv.ruyi@zte.com.cn> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/dp/dp_display.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c > index a42732b67349..3926d2ac107d 100644 > --- a/drivers/gpu/drm/msm/dp/dp_display.c > +++ b/drivers/gpu/drm/msm/dp/dp_display.c > @@ -1239,7 +1239,7 @@ int dp_display_request_irq(struct msm_dp *dp_display) > dp = container_of(dp_display, struct dp_display_private, dp_display); > > dp->irq = irq_of_parse_and_map(dp->pdev->dev.of_node, 0); > - if (dp->irq < 0) { > + if (!dp->irq) { > rc = dp->irq; > DRM_ERROR("failed to get irq: %d\n", rc); > return rc; > -- > 2.25.1 >
Quoting cgel.zte@gmail.com (2022-04-22 01:49:51) > From: Lv Ruyi <lv.ruyi@zte.com.cn> > > The irq_of_parse_and_map() function returns 0 on failure, and does not > return an negative value. > > Fixes: 8ede2ecc3e5e ("drm/msm/dp: Add DP compliance tests on Snapdragon Chipsets") > Reported-by: Zeal Robot <zealci@zte.com.cn> > Signed-off-by: Lv Ruyi <lv.ruyi@zte.com.cn> > --- > drivers/gpu/drm/msm/dp/dp_display.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c > index a42732b67349..3926d2ac107d 100644 > --- a/drivers/gpu/drm/msm/dp/dp_display.c > +++ b/drivers/gpu/drm/msm/dp/dp_display.c > @@ -1239,7 +1239,7 @@ int dp_display_request_irq(struct msm_dp *dp_display) > dp = container_of(dp_display, struct dp_display_private, dp_display); > > dp->irq = irq_of_parse_and_map(dp->pdev->dev.of_node, 0); Why can't platform_get_irq() be used? > - if (dp->irq < 0) { > + if (!dp->irq) { > rc = dp->irq; zero as an error return value is an error? > DRM_ERROR("failed to get irq: %d\n", rc); > return rc;
On 22/04/2022 21:39, Stephen Boyd wrote: > Quoting cgel.zte@gmail.com (2022-04-22 01:49:51) >> From: Lv Ruyi <lv.ruyi@zte.com.cn> >> >> The irq_of_parse_and_map() function returns 0 on failure, and does not >> return an negative value. >> >> Fixes: 8ede2ecc3e5e ("drm/msm/dp: Add DP compliance tests on Snapdragon Chipsets") >> Reported-by: Zeal Robot <zealci@zte.com.cn> >> Signed-off-by: Lv Ruyi <lv.ruyi@zte.com.cn> >> --- >> drivers/gpu/drm/msm/dp/dp_display.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c >> index a42732b67349..3926d2ac107d 100644 >> --- a/drivers/gpu/drm/msm/dp/dp_display.c >> +++ b/drivers/gpu/drm/msm/dp/dp_display.c >> @@ -1239,7 +1239,7 @@ int dp_display_request_irq(struct msm_dp *dp_display) >> dp = container_of(dp_display, struct dp_display_private, dp_display); >> >> dp->irq = irq_of_parse_and_map(dp->pdev->dev.of_node, 0); > > Why can't platform_get_irq() be used? > >> - if (dp->irq < 0) { >> + if (!dp->irq) { >> rc = dp->irq; > > zero as an error return value is an error? Hmm, nice catch. Please fix it. And the other patch too. > >> DRM_ERROR("failed to get irq: %d\n", rc); >> return rc;
diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index a42732b67349..3926d2ac107d 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1239,7 +1239,7 @@ int dp_display_request_irq(struct msm_dp *dp_display) dp = container_of(dp_display, struct dp_display_private, dp_display); dp->irq = irq_of_parse_and_map(dp->pdev->dev.of_node, 0); - if (dp->irq < 0) { + if (!dp->irq) { rc = dp->irq; DRM_ERROR("failed to get irq: %d\n", rc); return rc;