kern/70474: if_axe USB interface stops responding
Andrew Thompson
andy at fud.org.nz
Sun Aug 15 02:30:22 PDT 2004
>Number: 70474
>Category: kern
>Synopsis: if_axe USB interface stops responding
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun Aug 15 09:30:20 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator: Andrew Thompson
>Release: 5.2-CURRENT
>Organization:
>Environment:
>Description:
I have a Netgear FA120 (if_axe) which is causing me greif. After doing
moderate network traffic it will stop responding with oodles of "axe0: read
PHY failed" on the console. A cvsup triggers it quite reliably.
On further analysis I found that it will not send any ethernet frame where the
size % 64 == 0
For instance all of the following will timeout
ping -s 22 <host>
ping -s 86 <host>
ping -s 150 <host>
etc...
Comparing to the other USB network drivers, I added USBD_FORCE_SHORT_XFER to
the transfer flags and it nas now been working reliably for months. I have
not seen any throughput reduction as a result.
>How-To-Repeat:
>Fix:
--- sys/dev/usb/if_axe.c Thu Jun 10 02:34:03 2004
+++ sys/dev/usb/if_axe.c Thu Jul 1 20:31:57 2004
@@ -808,7 +808,8 @@
c->axe_mbuf = m;
usbd_setup_xfer(c->axe_xfer, sc->axe_ep[AXE_ENDPT_TX],
- c, c->axe_buf, m->m_pkthdr.len, 0, 10000, axe_txeof);
+ c, c->axe_buf, m->m_pkthdr.len, USBD_FORCE_SHORT_XFER,
+ 10000, axe_txeof);
/* Transmit */
err = usbd_transfer(c->axe_xfer);
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list