serial: pl011: Avoid assumptions about buffer size when refilling TX DMA
PATCH 2/5 serial: pl011: Avoid assumptions about buffer size when refilling TX DMA
The existing code assumed that PL011_DMA_BUFFER_SIZE == UART_XMIT_SIZE, which may not always be the case. This allows for these two being different sizes and not copying too much data.
Signed-off-by Andrew Jackson <[email protected]>
--- drivers/tty/serial/amba-pl011.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
drivers/tty/serial/amba-pl011.c +5 -1
@@ -501,7 +501,11 @@ static int pl011_dma_tx_refill(struct uart_amba_port *uap)memcpy (&dmatx->buf[0 ], &xmit->buf[xmit->tail], count); else {size_t first =UART_XMIT_SIZE - xmit->tail; -size_t second = xmit->head; +size_t second; + +if (first > count) + first = count; + second = count - first;memcpy (&dmatx->buf[0 ], &xmit->buf[xmit->tail], first);if (second)
Signature · 1 line
1.7.1