From owner-freebsd-bugs Tue Apr 2 18:40: 8 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id C6EEF37B41A for ; Tue, 2 Apr 2002 18:40:01 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g332e1Y95639; Tue, 2 Apr 2002 18:40:01 -0800 (PST) (envelope-from gnats) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 0B24037B416 for ; Tue, 2 Apr 2002 18:33:36 -0800 (PST) Received: (from nobody@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g332XZ394590; Tue, 2 Apr 2002 18:33:35 -0800 (PST) (envelope-from nobody) Message-Id: <200204030233.g332XZ394590@freefall.freebsd.org> Date: Tue, 2 Apr 2002 18:33:35 -0800 (PST) From: Yuri Victorovich To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-1.0 Subject: kern/36682: USB isochroneous transfer doesn't report back lengths of short transfers Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 36682 >Category: kern >Synopsis: USB isochroneous transfer doesn't report back lengths of short transfers >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Apr 02 18:40:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: Yuri Victorovich >Release: STABLE 4.5 >Organization: Optima Inc >Environment: FreeBSD mach1.xxx.com 4.5-STABLE FreeBSD 4.5-STABLE #8: Tue Apr 2 18:48:53 EST 2002 root@sunflower.syrec.org:/usr/src/sys/compile/GENERIC i386 >Description: When isochroneous read transfer is submitted with a lot of segments there are some devices that don't fill the buffers completely and return short transfer. Driver issuing transfer should always be interested in actual length of each individual buffer read. Currently system lacks this capability. >How-To-Repeat: N/A >Fix: *** uhci.c Tue Apr 2 18:43:59 2002 --- uhci.c Tue Apr 2 18:45:02 2002 *************** *** 1104,1109 **** --- 1104,1110 ---- n = 0; status = LE(std->td.td_status); actlen += UHCI_TD_GET_ACTLEN(status); + xfer->frlengths[i] = UHCI_TD_GET_ACTLEN(status); } upipe->u.iso.inuse -= nframes; xfer->actlen = actlen; >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message