Skip site navigation (1)Skip section navigation (2)
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>