From 2e842392983e35e8316e5d283a48a91e33850c05 Mon Sep 17 00:00:00 2001 From: Heikki Krogerus Date: Wed, 16 Jan 2013 14:08:13 +0200 Subject: [PATCH] --- yaml --- r: 354797 b: refs/heads/master c: 6f3fe3b1027bf50c0a0859e5c9ee93b174b95543 h: refs/heads/master i: 354795: ac3acaf4bd6adafbb733256a39c4bb5a2313bb51 v: v3 --- [refs] | 2 +- trunk/drivers/tty/serial/8250/8250_dma.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 6542a6335cbb..090ac2f7e1ed 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 852e4a8152b427c3f318bb0e1b5e938d64dcdc32 +refs/heads/master: 6f3fe3b1027bf50c0a0859e5c9ee93b174b95543 diff --git a/trunk/drivers/tty/serial/8250/8250_dma.c b/trunk/drivers/tty/serial/8250/8250_dma.c index 95516a15a441..02333fc17f41 100644 --- a/trunk/drivers/tty/serial/8250/8250_dma.c +++ b/trunk/drivers/tty/serial/8250/8250_dma.c @@ -43,8 +43,9 @@ static void __dma_rx_complete(void *param) { struct uart_8250_port *p = param; struct uart_8250_dma *dma = p->dma; - struct tty_struct *tty = p->port.state->port.tty; + struct tty_port *tty_port = &p->port.state->port; struct dma_tx_state state; + int count; dma_sync_single_for_cpu(dma->rxchan->device->dev, dma->rx_addr, dma->rx_size, DMA_FROM_DEVICE); @@ -52,10 +53,12 @@ static void __dma_rx_complete(void *param) dmaengine_tx_status(dma->rxchan, dma->rx_cookie, &state); dmaengine_terminate_all(dma->rxchan); - tty_insert_flip_string(tty, dma->rx_buf, dma->rx_size - state.residue); - p->port.icount.rx += dma->rx_size - state.residue; + count = dma->rx_size - state.residue; - tty_flip_buffer_push(tty); + tty_insert_flip_string(tty_port, dma->rx_buf, count); + p->port.icount.rx += count; + + tty_flip_buffer_push(tty_port); } int serial8250_tx_dma(struct uart_8250_port *p)