2022-01-06 02:56:25

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH] drm/v3d/v3d_drv: Check for error num after setting mask

Because of the possible failure of the dma_supported(), the
dma_set_mask_and_coherent() may return error num.
Therefore, it should be better to check it and return the error if
fails.

Fixes: 334dd38a3878 ("drm/v3d: Set dma_mask as well as coherent_dma_mask")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
drivers/gpu/drm/v3d/v3d_drv.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/v3d/v3d_drv.c b/drivers/gpu/drm/v3d/v3d_drv.c
index 99e22beea90b..bedd52195723 100644
--- a/drivers/gpu/drm/v3d/v3d_drv.c
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
@@ -232,8 +232,11 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
return ret;

mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
- dma_set_mask_and_coherent(dev,
+ ret = dma_set_mask_and_coherent(dev,
DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH)));
+ if (ret)
+ return ret;
+
v3d->va_width = 30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_VA_WIDTH);

ident1 = V3D_READ(V3D_HUB_IDENT1);
--
2.25.1



2022-01-06 10:18:27

by Melissa Wen

[permalink] [raw]
Subject: Re: [PATCH] drm/v3d/v3d_drv: Check for error num after setting mask

On 01/06, Jiasheng Jiang wrote:
> Because of the possible failure of the dma_supported(), the
> dma_set_mask_and_coherent() may return error num.
> Therefore, it should be better to check it and return the error if
> fails.
>
> Fixes: 334dd38a3878 ("drm/v3d: Set dma_mask as well as coherent_dma_mask")
> Signed-off-by: Jiasheng Jiang <[email protected]>
> ---
> drivers/gpu/drm/v3d/v3d_drv.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/v3d/v3d_drv.c b/drivers/gpu/drm/v3d/v3d_drv.c
> index 99e22beea90b..bedd52195723 100644
> --- a/drivers/gpu/drm/v3d/v3d_drv.c
> +++ b/drivers/gpu/drm/v3d/v3d_drv.c
> @@ -232,8 +232,11 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
> return ret;
>
> mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
> - dma_set_mask_and_coherent(dev,
> + ret = dma_set_mask_and_coherent(dev,
> DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH)));
> + if (ret)
> + return ret;
> +
lgtm, thanks!

Reviewed-by: Melissa Wen <[email protected]>

> v3d->va_width = 30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_VA_WIDTH);
>
> ident1 = V3D_READ(V3D_HUB_IDENT1);
> --
> 2.25.1
>


Attachments:
(No filename) (1.15 kB)
signature.asc (833.00 B)
Download all attachments

2022-01-09 17:35:30

by Melissa Wen

[permalink] [raw]
Subject: Re: [PATCH] drm/v3d/v3d_drv: Check for error num after setting mask

On 01/06, Melissa Wen wrote:
> On 01/06, Jiasheng Jiang wrote:
> > Because of the possible failure of the dma_supported(), the
> > dma_set_mask_and_coherent() may return error num.
> > Therefore, it should be better to check it and return the error if
> > fails.
> >
> > Fixes: 334dd38a3878 ("drm/v3d: Set dma_mask as well as coherent_dma_mask")
> > Signed-off-by: Jiasheng Jiang <[email protected]>
> > ---
> > drivers/gpu/drm/v3d/v3d_drv.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/v3d/v3d_drv.c b/drivers/gpu/drm/v3d/v3d_drv.c
> > index 99e22beea90b..bedd52195723 100644
> > --- a/drivers/gpu/drm/v3d/v3d_drv.c
> > +++ b/drivers/gpu/drm/v3d/v3d_drv.c
> > @@ -232,8 +232,11 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
> > return ret;
> >
> > mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
> > - dma_set_mask_and_coherent(dev,
> > + ret = dma_set_mask_and_coherent(dev,
> > DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH)));
> > + if (ret)
> > + return ret;
> > +
> lgtm, thanks!
>
Checkpatch complains when I was about to apply this change.
As the current code already has an alignment issue, here is a good
opportunity to clean it properly. I suggest to create a variable for
the mask to solve this parenthesis alignment issue.

When submitting the next version, add my r-b, please.

Thanks, Melissa

> Reviewed-by: Melissa Wen <[email protected]>
>
> > v3d->va_width = 30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_VA_WIDTH);
> >
> > ident1 = V3D_READ(V3D_HUB_IDENT1);
> > --
> > 2.25.1
> >



Attachments:
(No filename) (1.56 kB)
signature.asc (833.00 B)
Download all attachments