]> Pileus Git - ~andy/linux/blobdiff - drivers/tty/serial/sa1100.c
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux...
[~andy/linux] / drivers / tty / serial / sa1100.c
index af6b3e3ad24d18cc48c00736570c8c758403adad..ba25722a7131ba11246c88a26a800fa7493b69bb 100644 (file)
@@ -232,7 +232,10 @@ sa1100_rx_chars(struct sa1100_port *sport)
                status = UTSR1_TO_SM(UART_GET_UTSR1(sport)) |
                         UTSR0_TO_SM(UART_GET_UTSR0(sport));
        }
+
+       spin_unlock(&sport->port.lock);
        tty_flip_buffer_push(&sport->port.state->port);
+       spin_lock(&sport->port.lock);
 }
 
 static void sa1100_tx_chars(struct sa1100_port *sport)
@@ -864,8 +867,6 @@ static int sa1100_serial_remove(struct platform_device *pdev)
 {
        struct sa1100_port *sport = platform_get_drvdata(pdev);
 
-       platform_set_drvdata(pdev, NULL);
-
        if (sport)
                uart_remove_one_port(&sa1100_reg, &sport->port);