diff options
author | John Stultz <john.stultz@linaro.org> | 2013-09-26 21:05:54 +0200 |
---|---|---|
committer | John Stultz <john.stultz@linaro.org> | 2013-09-26 21:05:54 +0200 |
commit | 17deb9c2db01c7813611291d251d8c7dbdfd3c9d (patch) | |
tree | 6e023c0be7c64de84dd51a671eb09c5c82b56615 /drivers/tty/serial/netx-serial.c | |
parent | clocksource: vf_pit_timer: Switch to sched_clock_register() (diff) | |
parent | Merge branch 'fortglx/3.12/time' into fortglx/3.13/time (diff) | |
download | linux-17deb9c2db01c7813611291d251d8c7dbdfd3c9d.tar.xz linux-17deb9c2db01c7813611291d251d8c7dbdfd3c9d.zip |
Merge remote-tracking branch 'tip/timers/core' into fordlezcano/3.13/sched-clock64-conversion
Update to tip/timers/core and resolve minor conflict.
Conflicts:
drivers/clocksource/samsung_pwm_timer.c
Signed-off-by: John Stultz <john.stultz@linaro.org>
Diffstat (limited to 'drivers/tty/serial/netx-serial.c')
-rw-r--r-- | drivers/tty/serial/netx-serial.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/tty/serial/netx-serial.c b/drivers/tty/serial/netx-serial.c index b9a40ed70be2..0a4dd70d29eb 100644 --- a/drivers/tty/serial/netx-serial.c +++ b/drivers/tty/serial/netx-serial.c @@ -196,7 +196,7 @@ static void netx_txint(struct uart_port *port) uart_write_wakeup(port); } -static void netx_rxint(struct uart_port *port) +static void netx_rxint(struct uart_port *port, unsigned long *flags) { unsigned char rx, flg, status; @@ -236,7 +236,9 @@ static void netx_rxint(struct uart_port *port) uart_insert_char(port, status, SR_OE, rx, flg); } + spin_unlock_irqrestore(&port->lock, *flags); tty_flip_buffer_push(&port->state->port); + spin_lock_irqsave(&port->lock, *flags); } static irqreturn_t netx_int(int irq, void *dev_id) @@ -250,7 +252,7 @@ static irqreturn_t netx_int(int irq, void *dev_id) status = readl(port->membase + UART_IIR) & IIR_MASK; while (status) { if (status & IIR_RIS) - netx_rxint(port); + netx_rxint(port, &flags); if (status & IIR_TIS) netx_txint(port); if (status & IIR_MIS) { @@ -693,8 +695,6 @@ static int serial_netx_remove(struct platform_device *pdev) { struct netx_port *sport = platform_get_drvdata(pdev); - platform_set_drvdata(pdev, NULL); - if (sport) uart_remove_one_port(&netx_reg, &sport->port); |