Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Feb 2016 17:47:55 +0100
From:      Marius Strobl <marius@freebsd.org>
To:        Michal Meloun <mmel@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r295557 - head/sys/dev/uart
Message-ID:  <20160212164755.GC4980@alchemy.franken.de>
In-Reply-To: <201602120514.u1C5EwWt053622@repo.freebsd.org>
References:  <201602120514.u1C5EwWt053622@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Feb 12, 2016 at 05:14:58AM +0000, Michal Meloun wrote:
> Author: mmel
> Date: Fri Feb 12 05:14:58 2016
> New Revision: 295557
> URL: https://svnweb.freebsd.org/changeset/base/295557
> 
> Log:
>   UART: Fix spurious interrupts generated by ns8250 and lpc drivers:
>    - don't enable transmitter empty interrupt before filling TX FIFO.

Are you sure this doesn't create a race that leads to lost TX ready
interrupts? For a single character, the TX FIFO very well may be empty
again at the point in time IER_ETXRDY is enabled now. With the varying
behavior of 8250/16x50 chips - some of which is documented in sio(4) -
I'd expect there are many that no longer generate a TX ready at all
with this change in place. In this case, receiving spurious interrupts
(which ones? IIR_NOPEND? IIR_TXRDY?) with some devices appears to be
the lesser evil.

Marius




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160212164755.GC4980>