Merge remote-tracking branch 'lsk/v3.10/topic/gator' into linux-linaro-lsk
[firefly-linux-kernel-4.4.55.git] / drivers / tty / serial / samsung.c
index 0c8a9fa2be6cee12182bb8e32e0ed37be1c8fdab..aaa0df1f2fc616d12dda0c29e125049c38b45a58 100644 (file)
@@ -249,6 +249,8 @@ s3c24xx_serial_rx_chars(int irq, void *dev_id)
                                        ufcon |= S3C2410_UFCON_RESETRX;
                                        wr_regl(port, S3C2410_UFCON, ufcon);
                                        rx_enabled(port) = 1;
+                                       spin_unlock_irqrestore(&port->lock,
+                                                       flags);
                                        goto out;
                                }
                                continue;
@@ -297,10 +299,11 @@ s3c24xx_serial_rx_chars(int irq, void *dev_id)
  ignore_char:
                continue;
        }
+
+       spin_unlock_irqrestore(&port->lock, flags);
        tty_flip_buffer_push(&port->state->port);
 
  out:
-       spin_unlock_irqrestore(&port->lock, flags);
        return IRQ_HANDLED;
 }