|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] Ensure that domain0 console receiver does not get stuck
ChangeSet 1.1871, 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 13:06:15 -04:00
+++ b/xen/drivers/char/console.c 2005-05-18 13:06:15 -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
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-changelog] Ensure that domain0 console receiver does not get stuck if serial,
BitKeeper Bot <=
|
|
|
|
|