[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Ensure that domain0 console receiver does not get stuck if serial
ChangeSet 1.1159.258.137, 2005/05/18 17:59:25+01:00, kaf24@xxxxxxxxxxxxxxxxxxxx Ensure that domain0 console receiver does not get stuck if serial input is received early during boot. Fixes bugzilla bug #41. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> console.c | 16 +++++++--------- 1 files changed, 7 insertions(+), 9 deletions(-) diff -Nru a/xen/drivers/char/console.c b/xen/drivers/char/console.c --- a/xen/drivers/char/console.c 2005-05-18 14:02:44 -04:00 +++ b/xen/drivers/char/console.c 2005-05-18 14:02:44 -04:00 @@ -260,15 +260,13 @@ static void __serial_rx(unsigned char c, struct xen_regs *regs) { if ( xen_rx ) - { - handle_keypress(c, regs); - } - else if ( (serial_rx_prod-serial_rx_cons) != SERIAL_RX_SIZE ) - { - serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod)] = c; - if ( serial_rx_prod++ == serial_rx_cons ) - send_guest_virq(dom0, VIRQ_CONSOLE); - } + return handle_keypress(c, regs); + + /* Deliver input to guest buffer, unless it is already full. */ + if ( (serial_rx_prod-serial_rx_cons) != SERIAL_RX_SIZE ) + serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] = c; + /* Always notify the guest: prevents receive path from getting stuck. */ + send_guest_virq(dom0, VIRQ_CONSOLE); } static void serial_rx(unsigned char c, struct xen_regs *regs) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |