]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
serial: amba-pl011: prefer dma_mapping_error() over explicit address checking
authorMiaoqian Lin <linmq006@gmail.com>
Mon, 27 Oct 2025 09:20:50 +0000 (17:20 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Dec 2025 21:12:43 +0000 (06:12 +0900)
commit eb4917f557d43c7a1c805dd73ffcdfddb2aba39a upstream.

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 <stable@kernel.org>
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Reviewed-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Link: https://patch.msgid.link/20251027092053.87937-1-linmq006@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/amba-pl011.c

index 5e151e1a6f08c8a3d9541a92468ba75dacb01d63..bb7f82f8278d048783a26b2b3cfb3527c5606ce0 100644 (file)
@@ -635,7 +635,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;