[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] fix use of host serial port
From: |
David S. Ahern |
Subject: |
[Qemu-devel] [PATCH] fix use of host serial port |
Date: |
Sat, 07 Feb 2009 10:34:55 -0700 |
User-agent: |
Thunderbird 2.0.0.19 (X11/20090105) |
I need to drive this to ground. Can I get this applied?
Thanks,
davd
The following patch fixes use of a host serial port.
My original post on the problem is:
http://marc.info/?l=kvm&m=122995568009533&w=2
Michael Tokarev (address@hidden) dug into the where the code was
failing: http://marc.info/?l=kvm&m=123300124703645&w=2
and further suggested a solution on which this patch is based.
The changed has been acked by Stefano Stabellini.
Signed-off-by: David Ahern <address@hidden>
Index: trunk/qemu-char.c
===================================================================
--- trunk/qemu-char.c (revision 6545)
+++ trunk/qemu-char.c (working copy)
@@ -1047,17 +1047,17 @@
int *targ = (int *)arg;
ioctl(s->fd_in, TIOCMGET, &sarg);
*targ = 0;
- if (sarg | TIOCM_CTS)
+ if (sarg & TIOCM_CTS)
*targ |= CHR_TIOCM_CTS;
- if (sarg | TIOCM_CAR)
+ if (sarg & TIOCM_CAR)
*targ |= CHR_TIOCM_CAR;
- if (sarg | TIOCM_DSR)
+ if (sarg & TIOCM_DSR)
*targ |= CHR_TIOCM_DSR;
- if (sarg | TIOCM_RI)
+ if (sarg & TIOCM_RI)
*targ |= CHR_TIOCM_RI;
- if (sarg | TIOCM_DTR)
+ if (sarg & TIOCM_DTR)
*targ |= CHR_TIOCM_DTR;
- if (sarg | TIOCM_RTS)
+ if (sarg & TIOCM_RTS)
*targ |= CHR_TIOCM_RTS;
}
break;
@@ -1065,9 +1065,20 @@
{
int sarg = *(int *)arg;
int targ = 0;
- if (sarg | CHR_TIOCM_DTR)
+ ioctl(s->fd_in, TIOCMGET, &targ);
+ targ &= ~(CHR_TIOCM_CTS | CHR_TIOCM_CAR | CHR_TIOCM_DSR
+ | CHR_TIOCM_RI | CHR_TIOCM_DTR | CHR_TIOCM_RTS);
+ if (sarg & CHR_TIOCM_CTS)
+ targ |= TIOCM_CTS;
+ if (sarg & CHR_TIOCM_CAR)
+ targ |= TIOCM_CAR;
+ if (sarg & CHR_TIOCM_DSR)
+ targ |= TIOCM_DSR;
+ if (sarg & CHR_TIOCM_RI)
+ targ |= TIOCM_RI;
+ if (sarg & CHR_TIOCM_DTR)
targ |= TIOCM_DTR;
- if (sarg | CHR_TIOCM_RTS)
+ if (sarg & CHR_TIOCM_RTS)
targ |= TIOCM_RTS;
ioctl(s->fd_in, TIOCMSET, &targ);
}
- [Qemu-devel] [PATCH] fix use of host serial port,
David S. Ahern <=