The Xen serial console cuts off the most significant bit from input characters, so you can't use e.g. German umlauts when logging in to the DOM0 Linux system from the serial console.

The following patch fixes that problem.

--- xen/drivers/char/serial.c.orig      2015-07-28 18:44:49.443889719 +0200
+++ xen/drivers/char/serial.c   2015-07-28 18:47:10.593728590 +0200
@@ -66,7 +66,7 @@
     spin_unlock_irqrestore(&port->rx_lock, flags);

     if ( fn != NULL )
-        (*fn)(c & 0x7f, regs);
+        (*fn)(c, regs);
 }

void serial_tx_interrupt(struct serial_port *port, struct cpu_user_regs *regs)
@@ -297,7 +297,11 @@
     } while ( ((handle & SERHND_LO) &&  (c & 0x80)) ||
               ((handle & SERHND_HI) && !(c & 0x80)) );

-    return c & 0x7f;
+    if (handle & SERHND_HI)
+    {
+        c &= 0x7f;
+    }
+    return c;
 }

 int __init serial_parse_handle(char *conf)

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to