Patch "tty: serial: msm: Don't read off end of tx fifo" has been added to the 4.7-stable tree

From: <gregkh@linuxfoundation.org>
Date: 2016-08-18 08:32:19

This is a note to let you know that I've just added the patch titled

    tty: serial: msm: Don't read off end of tx fifo

to the 4.7-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     tty-serial-msm-don-t-read-off-end-of-tx-fifo.patch
and it can be found in the queue-4.7 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let [off-list ref] know about it.

From 30acf549ca1e81859a67590ab9ecfce3d1050a0b Mon Sep 17 00:00:00 2001
From: Bjorn Andersson <redacted>
Date: Thu, 2 Jun 2016 17:48:28 -0700
Subject: tty: serial: msm: Don't read off end of tx fifo

From: Bjorn Andersson <redacted>

commit 30acf549ca1e81859a67590ab9ecfce3d1050a0b upstream.

For dm uarts in pio mode tx data is transferred to the fifo register 4
bytes at a time, but care is not taken when these 4 bytes spans the end
of the xmit buffer so the loop might read up to 3 bytes past the buffer
and then skip the actual data at the beginning of the buffer.

Fix this by, analogous to the DMA case, make sure the chunk doesn't
wrap the xmit buffer.

Fixes: 3a878c430fd6 ("tty: serial: msm: Add TX DMA support")
Cc: Ivan Ivanov <redacted>
Reported-by: Frank Rowand <redacted>
Reported-by: Nicolas Dechesne <redacted>
Signed-off-by: Bjorn Andersson <redacted>
Acked-by: Andy Gross <redacted>
Tested-by: Frank Rowand <redacted>
Reviewed-by: Stephen Boyd <redacted>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/tty/serial/msm_serial.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/tty/serial/msm_serial.c
+++ b/drivers/tty/serial/msm_serial.c
@@ -726,7 +726,7 @@ static void msm_handle_tx(struct uart_po
 		return;
 	}
 
-	pio_count = CIRC_CNT(xmit->head, xmit->tail, UART_XMIT_SIZE);
+	pio_count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
 	dma_count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
 
 	dma_min = 1;	/* Always DMA */

Patches currently in stable-queue which might be from bjorn.andersson@linaro.org are

queue-4.7/mfd-qcom_rpm-parametrize-also-ack-selector-size.patch
queue-4.7/tty-serial-msm-don-t-read-off-end-of-tx-fifo.patch
queue-4.7/mfd-qcom_rpm-fix-offset-error-for-msm8660.patch
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help