tty: bfin-sport-uart: Rx interrupt is not called always with irq disabled.
authorSonic Zhang <sonic.zhang@analog.com>
Tue, 6 Dec 2011 07:16:33 +0000 (15:16 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 10 Dec 2011 03:05:33 +0000 (19:05 -0800)
Replace local_irq_disable by local_irq_save.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/tty/serial/bfin_sport_uart.h

index 6d06ce1d5675ce12dbe8e9d9d682f3fbff4a595f..e4510ea135ceb1dc1b6a85d02320cfede400c57d 100644 (file)
 #define SPORT_GET_RX32(sport) \
 ({ \
        unsigned int __ret; \
+       unsigned long flags; \
        if (ANOMALY_05000473) \
-               local_irq_disable(); \
+               local_irq_save(flags); \
        __ret = bfin_read32((sport)->port.membase + OFFSET_RX); \
        if (ANOMALY_05000473) \
-               local_irq_enable(); \
+               local_irq_restore(flags); \
        __ret; \
 })
 #define SPORT_GET_RCR1(sport)          bfin_read16(((sport)->port.membase + OFFSET_RCR1))