From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH] xen: allow 8bit input in Xen serial console Date: Tue, 28 Jul 2015 18:20:10 +0100 Message-ID: <55B7B9CA.9000603@citrix.com> References: <55B7B5AE.5050801@rz-online.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZK8Y4-0004t2-6u for xen-devel@lists.xenproject.org; Tue, 28 Jul 2015 17:20:16 +0000 In-Reply-To: <55B7B5AE.5050801@rz-online.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Manfred Haertel , Xen-devel List-Id: xen-devel@lists.xenproject.org On 28/07/15 18:02, Manfred Haertel wrote: > 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. Thanks for the submission. However, please sign your patch off, per http://wiki.xen.org/wiki/Submitting_Xen_Project_Patches#Signing_off_a_patch > > --- 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) Please read CODING_STYLE in the root of the tree, but to summarise here, spaces inside the first level of brackes, so "if ( handle & SERHND_HI )", and no braces for single statements. > + { > + c &= 0x7f; > + } > + return c; I think in both cases you need to mask out the top bit if either SERHND_HI or SERHND_LO is set, and leave all 8 bits alone if neither are set. Both of these are opt-in with command line options, so the default configuration in most cases pass 8-bit characters unmodified. You probably also want to patch docs/misc/xen-command-line.markdown to indicate that choosing the 'H' or 'L' option will prevent the use of 8-bit characters. ~Andrew