]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
tty/serial: at91: correct check of buf used in DMA
authorLeilei Zhao <leilei.zhao@atmel.com>
Fri, 27 Feb 2015 08:07:14 +0000 (16:07 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Mar 2015 02:51:47 +0000 (03:51 +0100)
We only use buf of ring In DMA rx function while using buf of xmit
in DMA tx function. So in DMA rx we need definitively to check the
buf of ring which is corresponding to DMA rx function. And use macro
PAGE_ALIGNED to simplify the expression.

Signed-off-by: Leilei Zhao <leilei.zhao@atmel.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/atmel_serial.c

index 4031dc367d3be28d4e301c019e6d01186a6dad2f..1a1d255baab5df197c4006df52d974d0223a1c26 100644 (file)
@@ -848,7 +848,7 @@ static int atmel_prepare_tx_dma(struct uart_port *port)
        spin_lock_init(&atmel_port->lock_tx);
        sg_init_table(&atmel_port->sg_tx, 1);
        /* UART circular tx buffer is an aligned page. */
-       BUG_ON((int)port->state->xmit.buf & ~PAGE_MASK);
+       BUG_ON(!PAGE_ALIGNED(port->state->xmit.buf));
        sg_set_page(&atmel_port->sg_tx,
                        virt_to_page(port->state->xmit.buf),
                        UART_XMIT_SIZE,
@@ -1027,7 +1027,7 @@ static int atmel_prepare_rx_dma(struct uart_port *port)
        spin_lock_init(&atmel_port->lock_rx);
        sg_init_table(&atmel_port->sg_rx, 1);
        /* UART circular rx buffer is an aligned page. */
-       BUG_ON((int)port->state->xmit.buf & ~PAGE_MASK);
+       BUG_ON(!PAGE_ALIGNED(ring->buf));
        sg_set_page(&atmel_port->sg_rx,
                    virt_to_page(ring->buf),
                    ATMEL_SERIAL_RINGSIZE,