[PATCH 2.6.16.18] 8250: Serial console enable Tx fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Enabling the Tx interrupt from console_write on buggy UART (UART_BUG_TXEN) breaks console transmit on said UART. Revert to previous UART_IER restore and use serial8250_start_tx() to cause the transmit path to start and not hang.

Signed-off-by: Michael W. J. Hordijk <mwh13@xxxxxxxx>

--- linux-2.6.16.y/drivers/serial/8250.c.orig   2006-05-26 21:25:09.000116360 -0400
+++ linux-2.6.16.y/drivers/serial/8250.c        2006-05-26 21:26:54.000841539 -0400
@@ -2229,8 +2229,13 @@ serial8250_console_write(struct console
         *      and restore the IER
         */
        wait_for_xmitr(up, BOTH_EMPTY);
-       up->ier |= UART_IER_THRI;
-       serial_out(up, UART_IER, ier | UART_IER_THRI);
+       serial_out(up, UART_IER, ier);
+
+       /*
+        *      Start transmitting again in case it was clobbered racing between
+        *      console and tty output.
+        */
+       serial8250_start_tx(up);
 }

 static int serial8250_console_setup(struct console *co, char *options)
-
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux