aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2007-12-19 15:02:05 +0000
committerKeir Fraser <keir.fraser@citrix.com>2007-12-19 15:02:05 +0000
commitbe169a04bc6b64b1acd881a54203d2788573364c (patch)
tree2591917ac41367bb4bbc5ed88ee3211fb3e88174
parentf28baafaafbf79b286344f302e04ad8659efba89 (diff)
downloadxen-be169a04bc6b64b1acd881a54203d2788573364c.tar.gz
xen-be169a04bc6b64b1acd881a54203d2788573364c.tar.bz2
xen-be169a04bc6b64b1acd881a54203d2788573364c.zip
Fix serial output of carriage return when using high-bit stream muxing.
Original patch by Dan Doucette. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
-rw-r--r--xen/drivers/char/serial.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
index a9c91e87eb..2cbb475dab 100644
--- a/xen/drivers/char/serial.c
+++ b/xen/drivers/char/serial.c
@@ -137,7 +137,7 @@ void serial_putc(int handle, char c)
spin_lock_irqsave(&port->tx_lock, flags);
if ( (c == '\n') && (handle & SERHND_COOKED) )
- __serial_putc(port, '\r');
+ __serial_putc(port, '\r' | ((handle & SERHND_HI) ? 0x80 : 0x00));
if ( handle & SERHND_HI )
c |= 0x80;
@@ -167,7 +167,7 @@ void serial_puts(int handle, const char *s)
while ( (c = *s++) != '\0' )
{
if ( (c == '\n') && (handle & SERHND_COOKED) )
- __serial_putc(port, '\r');
+ __serial_putc(port, '\r' | ((handle & SERHND_HI) ? 0x80 : 0x00));
if ( handle & SERHND_HI )
c |= 0x80;