From owner-freebsd-bugs@FreeBSD.ORG Sun Jun 22 09:26:41 2014 Return-Path: Delivered-To: freebsd-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CAA55F40 for ; Sun, 22 Jun 2014 09:26:41 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B1DBC24C6 for ; Sun, 22 Jun 2014 09:26:41 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.8/8.14.8) with ESMTP id s5M9QfZ5085855 for ; Sun, 22 Jun 2014 10:26:41 +0100 (BST) (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 191265] New: [patch] uart(4) punishes UARTs for being too fast Date: Sun, 22 Jun 2014 09:26:41 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: shurd@FreeBSD.org X-Bugzilla-Status: Needs Triage X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jun 2014 09:26:41 -0000 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.