]> Pileus Git - ~andy/linux/blobdiff - drivers/serial/atmel_serial.c
b44: strncpy does not null terminate string
[~andy/linux] / drivers / serial / atmel_serial.c
index b3497d7e5354dec9ab0ba49cd754f5e47867c45b..338b15c0a548e9f2d6d630d1ea3eb52954abff0a 100644 (file)
@@ -1104,11 +1104,13 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios,
        /* update the per-port timeout */
        uart_update_timeout(port, termios->c_cflag, baud);
 
-       /* save/disable interrupts and drain transmitter */
+       /*
+        * save/disable interrupts. The tty layer will ensure that the
+        * transmitter is empty if requested by the caller, so there's
+        * no need to wait for it here.
+        */
        imr = UART_GET_IMR(port);
        UART_PUT_IDR(port, -1);
-       while (!(UART_GET_CSR(port) & ATMEL_US_TXEMPTY))
-               cpu_relax();
 
        /* disable receiver and transmitter */
        UART_PUT_CR(port, ATMEL_US_TXDIS | ATMEL_US_RXDIS);