From mboxrd@z Thu Jan 1 00:00:00 1970 From: tgingold@free.fr Subject: PATCH [xenconsoled]: makes pty slave raw early Date: Wed, 16 Jan 2008 06:30:04 +0100 Message-ID: <20080116053004.GA18526@localhost.localdomain> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="IS0zKkzwUGydFO0o" Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Xen-devel List-Id: xen-devel@lists.xenproject.org --IS0zKkzwUGydFO0o Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, on my system (Linux 2.6.18.8 - ia64), if a domain write on the xencons before xenconsole is initialized the domain gets back what it wrote. This patch fixes this issue by making raw the pty slave very early. (I suppose it doesn't happen with linux as a guest because it takes a little bit of time before writing to xencons). Tristan. --IS0zKkzwUGydFO0o Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="cons.patch" # HG changeset patch # User Tristan Gingold # Date 1200461143 -3600 # Node ID 0353ead264baea1eac7fb35c622c69f45f3935df # Parent ca2828a46217bec2096144d2bc96b1d610272f30 Make slave pty raw during initialization. (This avoids echo). Signed-off-by: Tristan Gingold diff -r ca2828a46217 -r 0353ead264ba tools/console/daemon/io.c --- a/tools/console/daemon/io.c Wed Jan 16 06:21:50 2008 +0100 +++ b/tools/console/daemon/io.c Wed Jan 16 06:25:43 2008 +0100 @@ -278,8 +278,10 @@ static int openpty(int *amaster, int *as if (winp) ioctl(sfd, TIOCSWINSZ, winp); + if (termp) + tcsetattr(sfd, TCSAFLUSH, termp); + assert(name == NULL); - assert(termp == NULL); return 0; @@ -299,11 +301,14 @@ static int domain_create_tty(struct doma bool success; char *data; unsigned int len; + struct termios term; assert(dom->slave_fd == -1); assert(dom->master_fd == -1); - if (openpty(&dom->master_fd, &dom->slave_fd, NULL, NULL, NULL) < 0) { + cfmakeraw(&term); + + if (openpty(&dom->master_fd, &dom->slave_fd, NULL, &term, NULL) < 0) { err = errno; dolog(LOG_ERR, "Failed to create tty for domain-%d (errno = %i, %s)", dom->domid, err, strerror(err)); --IS0zKkzwUGydFO0o Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --IS0zKkzwUGydFO0o--