Date: Sun, 22 Jun 2014 09:26:41 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 191265] New: [patch] uart(4) punishes UARTs for being too fast Message-ID: <bug-191265-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191265 Bug ID: 191265 Summary: [patch] uart(4) punishes UARTs for being too fast Product: Base System Version: 11.0-CURRENT Hardware: Any OS: Any Status: Needs Triage Severity: Affects Only Me Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: shurd@FreeBSD.org Created attachment 144015 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=144015&action=edit Fix for discarding data when internal buffer full. For NS8250 family UARTs, svn 120146 - http://svnweb.freebsd.org/base?view=revision&revision=120146 - made a change to flush the UART if the kernel buffers are full. The commit message suggests this is because of how the read loop was structured. However, this change mad it so that if the internal FreeBSD buffer is full, it will drop all pending data... effectively punishing devices for having too much data buffered. At least one network exposed UART is capable of this. The attached patch doesn't clear the interrupt if the rx buffer is full by checking the buffer has space before reading LSR. -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-191265-8>