Re: [PATCH] serial: amba-pl011: prefer dma_mapping_error() over explicit address checking
From: Gregory CLEMENT
Date: Mon Oct 27 2025 - 11:10:32 EST
Miaoqian Lin <linmq006@xxxxxxxxx> writes:
> Check for returned DMA addresses using specialized dma_mapping_error()
> helper which is generally recommended for this purpose by
> Documentation/core-api/dma-api.rst:
>
> "In some circumstances dma_map_single(), ...
> will fail to create a mapping. A driver can check for these errors
> by testing the returned DMA address with dma_mapping_error()."
>
> Found via static analysis and this is similar to commit fa0308134d26
> ("ALSA: memalloc: prefer dma_mapping_error() over explicit address checking")
>
> Fixes: 58ac1b379979 ("ARM: PL011: Fix DMA support")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Miaoqian Lin <linmq006@xxxxxxxxx>
Reviewed-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxx>
Thanks,
Gregory
> ---
> drivers/tty/serial/amba-pl011.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
> index 22939841b1de..7f17d288c807 100644
> --- a/drivers/tty/serial/amba-pl011.c
> +++ b/drivers/tty/serial/amba-pl011.c
> @@ -628,7 +628,7 @@ static int pl011_dma_tx_refill(struct uart_amba_port *uap)
> dmatx->len = count;
> dmatx->dma = dma_map_single(dma_dev->dev, dmatx->buf, count,
> DMA_TO_DEVICE);
> - if (dmatx->dma == DMA_MAPPING_ERROR) {
> + if (dma_mapping_error(dma_dev->dev, dmatx->dma)) {
> uap->dmatx.queued = false;
> dev_dbg(uap->port.dev, "unable to map TX DMA\n");
> return -EBUSY;
> --
> 2.39.5 (Apple Git-154)
>
--
Grégory CLEMENT, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com