ia64/xen-unstable

changeset 18725:9e47e72fd03e

serial: Fix IRQ enable/disable in tx interrupt handler.
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)