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