The return value of dma_set_coherent_mask() is not always 0.
To catch the exception in case that dma is not support the mask.
Fixes: 0a0c3b5a24bd ("Add new uio device for dynamic memory allocation")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
drivers/uio/uio_dmem_genirq.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/uio/uio_dmem_genirq.c b/drivers/uio/uio_dmem_genirq.c
index 6b5cfa5b0673..570f5be64b46 100644
--- a/drivers/uio/uio_dmem_genirq.c
+++ b/drivers/uio/uio_dmem_genirq.c
@@ -188,7 +188,9 @@ static int uio_dmem_genirq_probe(struct platform_device *pdev)
return -ENOMEM;
}
- dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
+ ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
+ if (ret)
+ return ret;
priv->uioinfo = uioinfo;
spin_lock_init(&priv->lock);
--
2.25.1
On Thu, Dec 02, 2021 at 05:18:39PM +0800, Jiasheng Jiang wrote:
> The return value of dma_set_coherent_mask() is not always 0.
> To catch the exception in case that dma is not support the mask.
>
> Fixes: 0a0c3b5a24bd ("Add new uio device for dynamic memory allocation")
> Signed-off-by: Jiasheng Jiang <[email protected]>
> ---
> drivers/uio/uio_dmem_genirq.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/uio/uio_dmem_genirq.c b/drivers/uio/uio_dmem_genirq.c
> index 6b5cfa5b0673..570f5be64b46 100644
> --- a/drivers/uio/uio_dmem_genirq.c
> +++ b/drivers/uio/uio_dmem_genirq.c
> @@ -188,7 +188,9 @@ static int uio_dmem_genirq_probe(struct platform_device *pdev)
> return -ENOMEM;
> }
>
> - dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
> + ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
> + if (ret)
> + return ret;
Please print out an error like the other failures above this in the
function.
And why is this a RESEND? When was it sent before?
thanks,
greg k-h