diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
-index 60c373b..4fc1a86 100644
+index 5fdfd91..9387944 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -127,8 +127,9 @@ static void ns16550_interrupt(
- if ( ns_read_reg(uart, LSR) & LSR_THRE )
+ bail=0;
-+ if (( ns_read_reg(uart, LSR) & LSR_THRE && (bail++ < 0x10))
++ if (( ns_read_reg(uart, LSR) & LSR_THRE) && (bail++ < 0x10))
serial_tx_interrupt(port, regs);
set_timer(&uart->timer, NOW() + MILLISECS(uart->timeout_ms));