serial: msm: check dma_map_sg() return value properly
authorJiri Slaby (SUSE) <jirislaby@kernel.org>
Fri, 19 Apr 2024 08:09:31 +0000 (10:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 20 Apr 2024 05:58:42 +0000 (07:58 +0200)
commitf70f95b485d78838ad28dbec804b986d11ad7bb0
tree982e6d07ec1284c867dc079e0a11cd0f014b8bfe
parentc6795fbffc4547b40933ec368200bd4926a41b44
serial: msm: check dma_map_sg() return value properly

The -next commit f8fef2fa419f (tty: msm_serial: use
dmaengine_prep_slave_sg()), switched to using dma_map_sg(). But the
return value of dma_map_sg() is special: it returns number of elements
mapped. And not a standard error value.

The commit also forgot to reset dma->tx_sg in case of this failure.

Fix both these mistakes.

Thanks to Marek who helped debugging this.

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/20240419080931.30949-1-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/msm_serial.c