svn commit: r214298 - stable/8/sys/dev/usb/net
Pyun YongHyeon
yongari at FreeBSD.org
Sun Oct 24 21:23:27 UTC 2010
Author: yongari
Date: Sun Oct 24 21:23:27 2010
New Revision: 214298
URL: http://svn.freebsd.org/changeset/base/214298
Log:
MFC r213424:
Make upper stack know driver's output status. This change increased
TX performance from 221kpps to 231kpps.
Modified:
stable/8/sys/dev/usb/net/if_axe.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/dev/usb/net/if_axe.c
==============================================================================
--- stable/8/sys/dev/usb/net/if_axe.c Sun Oct 24 21:22:00 2010 (r214297)
+++ stable/8/sys/dev/usb/net/if_axe.c Sun Oct 24 21:23:27 2010 (r214298)
@@ -862,12 +862,15 @@ axe_bulk_write_callback(struct usb_xfer
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
DPRINTFN(11, "transfer complete\n");
+ ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
/* FALLTHROUGH */
case USB_ST_SETUP:
tr_setup:
- if ((sc->sc_flags & AXE_FLAG_LINK) == 0) {
+ if ((sc->sc_flags & AXE_FLAG_LINK) == 0 ||
+ (ifp->if_drv_flags & IFF_DRV_OACTIVE) != 0) {
/*
- * don't send anything if there is no link !
+ * Don't send anything if there is no link or
+ * controller is busy.
*/
return;
}
@@ -938,6 +941,7 @@ tr_setup:
usbd_xfer_set_frame_len(xfer, 0, pos);
usbd_transfer_submit(xfer);
+ ifp->if_drv_flags |= IFF_DRV_OACTIVE;
return;
default: /* Error */
@@ -945,6 +949,7 @@ tr_setup:
usbd_errstr(error));
ifp->if_oerrors++;
+ ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
if (error != USB_ERR_CANCELLED) {
/* try to clear stall first */
@@ -1077,7 +1082,7 @@ axe_stop(struct usb_ether *ue)
AXE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
sc->sc_flags &= ~AXE_FLAG_LINK;
/*
More information about the svn-src-stable-8
mailing list