From: David S. Miller Date: Tue, 17 Jul 2007 00:05:11 +0000 (-0700) Subject: [SERIAL] SUNHV: Fix jerky console on LDOM guests. X-Git-Tag: v2.6.23-rc1~769^2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f798634d806615bee27d1b83479034087a02aa0f;p=linux-2.6 [SERIAL] SUNHV: Fix jerky console on LDOM guests. Mixing putchar() and write() hvcalls does not work %100 correctly. But we should be using write() all the time if we can, even from ->start_tx(), anyways. Signed-off-by: David S. Miller --- diff --git a/drivers/serial/sunhv.c b/drivers/serial/sunhv.c index 17bcca53d6..d82be42ff2 100644 --- a/drivers/serial/sunhv.c +++ b/drivers/serial/sunhv.c @@ -258,17 +258,7 @@ static void sunhv_stop_tx(struct uart_port *port) /* port->lock held by caller. */ static void sunhv_start_tx(struct uart_port *port) { - struct circ_buf *xmit = &port->info->xmit; - - while (!uart_circ_empty(xmit)) { - long status = sun4v_con_putchar(xmit->buf[xmit->tail]); - - if (status != HV_EOK) - break; - - xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); - port->icount.tx++; - } + transmit_chars(port); } /* port->lock is not held. */