diff mbox series

drm/v3d/v3d_drv: Check for error num after setting mask

Message ID 20220106025539.2597562-1-jiasheng@iscas.ac.cn (mailing list archive)
State New, archived
Headers show
Series drm/v3d/v3d_drv: Check for error num after setting mask | expand

Commit Message

Jiasheng Jiang Jan. 6, 2022, 2:55 a.m. UTC
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 <jiasheng@iscas.ac.cn>
---
 drivers/gpu/drm/v3d/v3d_drv.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Melissa Wen Jan. 6, 2022, 10:17 a.m. UTC | #1
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 <jiasheng@iscas.ac.cn>
> ---
>  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 <mwen@igalia.com>

>  	v3d->va_width = 30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_VA_WIDTH);
>  
>  	ident1 = V3D_READ(V3D_HUB_IDENT1);
> -- 
> 2.25.1
>
Melissa Wen Jan. 9, 2022, 5:34 p.m. UTC | #2
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 <jiasheng@iscas.ac.cn>
> > ---
> >  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 <mwen@igalia.com>
> 
> >  	v3d->va_width = 30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_VA_WIDTH);
> >  
> >  	ident1 = V3D_READ(V3D_HUB_IDENT1);
> > -- 
> > 2.25.1
> >
diff mbox series

Patch

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);