[PATCH 1/1] serial/imx: fail startup if DMA initialization fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Hannu Koivisto <hannu.koivisto@xxxxxxxxx>

[Ported to newer kernel and added description by Martyn Welch
<martyn.welch@xxxxxxxxxxxxxxx>]

Configuration of DMA operation on an imx UART can fail, though the return
value is never checked and this goes unnoticed. Add error checking and fail
if this operation doesn't succeed.

Signed-off-by: Martyn Welch <martyn.welch@xxxxxxxxxxxxxxx>
Signed-off-by: Fabien Lahoudere <fabien.lahoudere@xxxxxxxxxxxxxxx>
---
 drivers/tty/serial/imx.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 08ccfe1..c190986 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -1255,8 +1255,14 @@ static int imx_startup(struct uart_port *port)
 
 	/* Can we enable the DMA support? */
 	if (is_imx6q_uart(sport) && !uart_console(port) &&
-	    !sport->dma_is_inited)
-		imx_uart_dma_init(sport);
+	    !sport->dma_is_inited) {
+		retval = imx_uart_dma_init(sport);
+		if (retval) {
+			clk_disable_unprepare(sport->clk_per);
+			clk_disable_unprepare(sport->clk_ipg);
+			return retval;
+		}
+	}
 
 	spin_lock_irqsave(&sport->port.lock, flags);
 	/* Reset fifo's and state machines */
-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux