| From 2d21543efe332cd8c8f212fb7d365bc8b0690bfa Mon Sep 17 00:00:00 2001 |
| From: Jiasheng Jiang <jiasheng@iscas.ac.cn> |
| Date: Thu, 6 Jan 2022 11:09:39 +0800 |
| Subject: dmaengine: sh: rcar-dmac: Check for error num after setting mask |
| |
| From: Jiasheng Jiang <jiasheng@iscas.ac.cn> |
| |
| commit 2d21543efe332cd8c8f212fb7d365bc8b0690bfa upstream. |
| |
| 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: dc312349e875 ("dmaengine: rcar-dmac: Widen DMA mask to 40 bits") |
| Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> |
| Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> |
| Link: https://lore.kernel.org/r/20220106030939.2644320-1-jiasheng@iscas.ac.cn |
| Signed-off-by: Vinod Koul <vkoul@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/dma/sh/rcar-dmac.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/dma/sh/rcar-dmac.c |
| +++ b/drivers/dma/sh/rcar-dmac.c |
| @@ -1825,7 +1825,9 @@ static int rcar_dmac_probe(struct platfo |
| platform_set_drvdata(pdev, dmac); |
| dmac->dev->dma_parms = &dmac->parms; |
| dma_set_max_seg_size(dmac->dev, RCAR_DMATCR_MASK); |
| - dma_set_mask_and_coherent(dmac->dev, DMA_BIT_MASK(40)); |
| + ret = dma_set_mask_and_coherent(dmac->dev, DMA_BIT_MASK(40)); |
| + if (ret) |
| + return ret; |
| |
| ret = rcar_dmac_parse_of(&pdev->dev, dmac); |
| if (ret < 0) |