2018-12-17 09:27:24

by Yue Haibing

[permalink] [raw]
Subject: [PATCH -next] drm/shmob: Fix return value check in shmob_drm_probe

In case of error, the function devm_ioremap_resource() returns ERR_PTR()
and never returns NULL. The NULL test in the return value check should
be replaced with IS_ERR().

Fixes: 8f1597c8f1a5 ("drm: shmobile: Perform initialization/cleanup at probe/remove time")
Signed-off-by: YueHaibing <[email protected]>
---
drivers/gpu/drm/shmobile/shmob_drm_drv.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
index 8554102..f2cfd16 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
@@ -229,8 +229,8 @@ static int shmob_drm_probe(struct platform_device *pdev)

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
sdev->mmio = devm_ioremap_resource(&pdev->dev, res);
- if (sdev->mmio == NULL)
- return -ENOMEM;
+ if (IS_ERR(sdev->mmio))
+ return PTR_ERR(sdev->mmio);

ret = shmob_drm_setup_clocks(sdev, pdata->clk_source);
if (ret < 0)
--
2.7.0




2018-12-17 12:24:10

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH -next] drm/shmob: Fix return value check in shmob_drm_probe

On Mon, Dec 17, 2018 at 05:18:30PM +0800, YueHaibing wrote:
> In case of error, the function devm_ioremap_resource() returns ERR_PTR()
> and never returns NULL. The NULL test in the return value check should
> be replaced with IS_ERR().
>
> Fixes: 8f1597c8f1a5 ("drm: shmobile: Perform initialization/cleanup at probe/remove time")
> Signed-off-by: YueHaibing <[email protected]>

Reviewed-by: Simon Horman <[email protected]>

2018-12-17 13:47:31

by Kieran Bingham

[permalink] [raw]
Subject: Re: [PATCH -next] drm/shmob: Fix return value check in shmob_drm_probe

Hi YeuHaibing,

On 17/12/2018 09:18, YueHaibing wrote:
> In case of error, the function devm_ioremap_resource() returns ERR_PTR()
> and never returns NULL. The NULL test in the return value check should
> be replaced with IS_ERR().
>

This looks correct to me.

I wonder if this failure pattern occurs a lot in the kernel.

I wonder if we have a cocci-check for this ?
It seems the closest we have is scripts/coccinelle/null/eno.cocci.

Perhaps that could be extended sometime to check these globally.

> Fixes: 8f1597c8f1a5 ("drm: shmobile: Perform initialization/cleanup at probe/remove time")
> Signed-off-by: YueHaibing <[email protected]>

Reviewed-by: Kieran Bingham <[email protected]>

> ---
> drivers/gpu/drm/shmobile/shmob_drm_drv.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> index 8554102..f2cfd16 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> @@ -229,8 +229,8 @@ static int shmob_drm_probe(struct platform_device *pdev)
>
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> sdev->mmio = devm_ioremap_resource(&pdev->dev, res);
> - if (sdev->mmio == NULL)
> - return -ENOMEM;
> + if (IS_ERR(sdev->mmio))
> + return PTR_ERR(sdev->mmio);
>
> ret = shmob_drm_setup_clocks(sdev, pdata->clk_source);
> if (ret < 0)
>


2018-12-17 21:38:31

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH -next] drm/shmob: Fix return value check in shmob_drm_probe

Hi Yue,

Thank you for the patch.

On Monday, 17 December 2018 11:18:30 EET YueHaibing wrote:
> In case of error, the function devm_ioremap_resource() returns ERR_PTR()
> and never returns NULL. The NULL test in the return value check should
> be replaced with IS_ERR().
>
> Fixes: 8f1597c8f1a5 ("drm: shmobile: Perform initialization/cleanup at
> probe/remove time")
> Signed-off-by: YueHaibing <[email protected]>

Reviewed-by: Laurent Pinchart <[email protected]>

and applied to my tree.

> ---
> drivers/gpu/drm/shmobile/shmob_drm_drv.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> b/drivers/gpu/drm/shmobile/shmob_drm_drv.c index 8554102..f2cfd16 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> @@ -229,8 +229,8 @@ static int shmob_drm_probe(struct platform_device *pdev)
>
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> sdev->mmio = devm_ioremap_resource(&pdev->dev, res);
> - if (sdev->mmio == NULL)
> - return -ENOMEM;
> + if (IS_ERR(sdev->mmio))
> + return PTR_ERR(sdev->mmio);
>
> ret = shmob_drm_setup_clocks(sdev, pdata->clk_source);
> if (ret < 0)

--
Regards,

Laurent Pinchart