From: Gerd Hoffmann There is a bug in the UART_BUG_TXEN test: It gives false positives in case the UART_IER_THRI bit is set. Fixed by explicitly clearing the UART_IER register first. It may trigger with an active serial console as serial console writes set the UART_IER_THRI bit. Signed-off-by: Gerd Hoffmann Cc: Russell King [akpm: previously nacked, but the problem remains unresolved] Russell King wrote: > On Sun, Jun 25, 2006 at 10:07:03AM +0100, Russell King wrote: > > On Sun, Jun 25, 2006 at 01:51:22AM -0700, akpm@osdl.org wrote: > > > > > > From: Gerd Hoffmann > > > > > > There is a bug in the UART_BUG_TXEN test: It gives false positives in case > > > the UART_IER_THRI bit is set. Fixed by explicitly clearing the UART_IER > > > register first. > > > > > > It may trigger with an active serial console as serial console writes set > > > the UART_IER_THRI bit. > > > > > > Signed-off-by: Gerd Hoffmann > > > Cc: Russell King > > > > > > [akpm: previously nacked, but the problem remains unresolved] > > > > It may remain unresolved, but since _NO ONE_ has responded to my requests > > to re-test with later kernels (or maybe they have and they haven't sent > > me anything) it's still NAKed. > > > > We've fundamentally changed the preconditions which _were_ causing the > > original problem. It _requires_ a re-checking by someone who had the > > problem. > > So you understand why I'm saying this - the original reason for adding > this was because the serial console write _incorrectly_ set the transmit > enable irrespective of whether it should be set or not. That was buggy > in itself, and has been resolved. > > The serial console write no longer sets the transmit enable bit, and as > such: > > > > It may trigger with an active serial console as serial console writes set > > > the UART_IER_THRI bit. > > is no longer true. Which is the specified reason for this patch to exist. > > That means that either this patch has not been re-tested on a later > kernel, or that there's some /other/ reason for this test mis-firing. > Given that the reports came in _only_ when the THRI enable bit to the > serial console path, I strongly suspect the former to be the case. > > And as such, until there's some feedback on re-testing 2.6.17 without > this patch applied, and a report saying that it still doesn't work, > this patch should not go anywhere. On the grounds we've fixed the > _original_ cause of the problem. Signed-off-by: Andrew Morton --- drivers/serial/8250.c | 1 + 1 file changed, 1 insertion(+) diff -puN drivers/serial/8250.c~serial-fix-uart_bug_txen-test drivers/serial/8250.c --- a/drivers/serial/8250.c~serial-fix-uart_bug_txen-test +++ a/drivers/serial/8250.c @@ -1772,6 +1772,7 @@ static int serial8250_startup(struct uar * Do a quick test to see if we receive an * interrupt when we enable the TX irq. */ + serial_outp(up, UART_IER, 0); serial_outp(up, UART_IER, UART_IER_THRI); lsr = serial_in(up, UART_LSR); iir = serial_in(up, UART_IIR); _