ia64/xen-unstable
changeset 18725:9e47e72fd03e
serial: Fix IRQ enable/disable in tx interrupt handler.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author | Keir Fraser <keir.fraser@citrix.com> |
---|---|
date | Mon Oct 27 11:27:31 2008 +0000 (2008-10-27) |
parents | efc0a4065ee1 |
children | 537d480b7ffc |
files | xen/drivers/char/serial.c |
line diff
1.1 --- a/xen/drivers/char/serial.c Mon Oct 27 10:49:20 2008 +0000 1.2 +++ b/xen/drivers/char/serial.c Mon Oct 27 11:27:31 2008 +0000 1.3 @@ -74,7 +74,7 @@ void serial_tx_interrupt(struct serial_p 1.4 while ( !spin_trylock(&port->tx_lock) ) 1.5 { 1.6 if ( !port->driver->tx_empty(port) ) 1.7 - return; 1.8 + goto out; 1.9 cpu_relax(); 1.10 } 1.11 1.12 @@ -89,7 +89,10 @@ void serial_tx_interrupt(struct serial_p 1.13 } 1.14 } 1.15 1.16 - spin_unlock_irqrestore(&port->tx_lock, flags); 1.17 + spin_unlock(&port->tx_lock); 1.18 + 1.19 + out: 1.20 + local_irq_restore(flags); 1.21 } 1.22 1.23 static void __serial_putc(struct serial_port *port, char c)