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: