From owner-freebsd-bugs@FreeBSD.ORG Wed Dec 10 02:30:25 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 49D0E16A4CE for ; Wed, 10 Dec 2003 02:30:25 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 964CD43D1D for ; Wed, 10 Dec 2003 02:30:22 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id hBAAUMFY002013 for ; Wed, 10 Dec 2003 02:30:22 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id hBAAUMM6002012; Wed, 10 Dec 2003 02:30:22 -0800 (PST) (envelope-from gnats) Resent-Date: Wed, 10 Dec 2003 02:30:22 -0800 (PST) Resent-Message-Id: <200312101030.hBAAUMM6002012@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Bruce M Simpson Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5E22816A4CE for ; Wed, 10 Dec 2003 02:27:30 -0800 (PST) Received: from arginine.spc.org (arginine.spc.org [195.206.69.236]) by mx1.FreeBSD.org (Postfix) with ESMTP id C27FE43D29 for ; Wed, 10 Dec 2003 02:27:28 -0800 (PST) (envelope-from bms@spc.org) Received: from localhost (localhost [127.0.0.1]) by arginine.spc.org (Postfix) with ESMTP id 416F9654BD for ; Wed, 10 Dec 2003 10:27:27 +0000 (GMT) Received: from arginine.spc.org ([127.0.0.1]) by localhost (arginine.spc.org [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 66270-02-2 for ; Wed, 10 Dec 2003 10:27:26 +0000 (GMT) Received: from saboteur.dek.spc.org (unknown [82.147.19.91]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by arginine.spc.org (Postfix) with ESMTP id BC4FC654B7 for ; Wed, 10 Dec 2003 10:27:26 +0000 (GMT) Received: by saboteur.dek.spc.org (Postfix, from userid 1001) id 269481B; Wed, 10 Dec 2003 10:27:24 +0000 (GMT) Message-Id: <20031210102724.269481B@saboteur.dek.spc.org> Date: Wed, 10 Dec 2003 10:27:24 +0000 (GMT) From: Bruce M Simpson To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: kern/60109: [PATCH] Fix isochronous request handling in -STABLE X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Bruce M Simpson List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2003 10:30:25 -0000 >Number: 60109 >Category: kern >Synopsis: [PATCH] Fix isochronous request handling in -STABLE >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Dec 10 02:30:21 PST 2003 >Closed-Date: >Last-Modified: >Originator: Bruce M Simpson >Release: FreeBSD 5.2-CURRENT i386 >Organization: >Environment: System: FreeBSD saboteur.dek.spc.org 5.2-CURRENT FreeBSD 5.2-CURRENT #0: Mon Dec 8 13:35:27 GMT 2003 bms@kimchi.dek.spc.org:/usr/src/sys/i386/compile/SABOTEUR i386 >Description: Submitted on behalf of Damien Bergamini (ueagle(4) driver maintainer). Record the length of an isochronous request correctly when handled. This patch is against 4.8, I can extract a 4.9 diff from CVS if you need me to. >How-To-Repeat: >Fix: --- isoc-4-8-RELEASE.patch begins here --- --- /sys/dev/usb/uhci.c 2003-09-04 14:34:29.000000000 +0200 +++ /sys/dev/usb/uhci.c 2003-09-04 14:35:43.000000000 +0200 @@ -1090,7 +1090,7 @@ if (xfer->nframes != 0) { /* Isoc transfer, do things differently. */ uhci_soft_td_t **stds = upipe->u.iso.stds; - int i, n, nframes; + int i, n, nframes, len; DPRINTFN(5,("uhci_idone: ii=%p isoc ready\n", ii)); @@ -1108,7 +1108,9 @@ if (++n >= UHCI_VFRAMELIST_COUNT) n = 0; status = LE(std->td.td_status); - actlen += UHCI_TD_GET_ACTLEN(status); + len = UHCI_TD_GET_ACTLEN(status); + xfer->frlengths[i] = len; + actlen += len; } upipe->u.iso.inuse -= nframes; xfer->actlen = actlen; --- isoc-4-8-RELEASE.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: