Skip to content

Commit

Permalink
serial: pl011: Avoid assumptions about buffer size when refilling TX DMA
Browse files Browse the repository at this point in the history
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 <Andrew.Jackson@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Andrew Jackson authored and Greg Kroah-Hartman committed Nov 7, 2014
1 parent 4c0be45 commit e2a545a
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion drivers/tty/serial/amba-pl011.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit e2a545a

Please sign in to comment.