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>