Subject: misc/26627: Large pings or ftps can cause unrecoverable ehci failure
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <dellis@conexant.com>
List: netbsd-bugs
Date: 08/11/2004 11:01:05
>Number: 26627
>Category: misc
>Synopsis: Large pings or ftps can cause unrecoverable ehci failure
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: misc-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Aug 12 18:32:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator: Dan Ellis
>Release:
>Organization:
Conexant Systems Inc.
>Environment:
Port of USB code
>Description:
A ping of 4000 bytes over if_uax can cause an unrecoverable error in the ehci controller.
>How-To-Repeat:
Perform pings of over a buffers worth (e.g. 2k) using the if_uax driver at high speed.
>Fix:
buffer allocation isn't quite correct in ehci_alloc_sqtd_chain.
If should take into account the offset into the first page, e.g.:
for (i = 0; i * EHCI_PAGE_SIZE < curlen + (dataphys % EHCI_PAGE_SIZE); i++) {
instead of:
for (i = 0; i * EHCI_PAGE_SIZE < curlen; i++) {
>Release-Note:
>Audit-Trail:
>Unformatted: