gem(4) diff needs testing
  Home FAQ Contact Sign in
Your Ad Here
mailing.openbsd.tech only
 
Advanced search
POPULAR GROUPS

more...

 Up
gem(4) diff needs testing         

Group: mailing.openbsd.tech · Group Profile
Author: Brad
Date: May 9, 2008 15:55

The following diff fixes the gem(4) driver to properly set and clear
the IFF_OACTIVE flag as appropriate to indicate to the upper layer
that the adapter has run out of TX descriptors.

Please test with any gem(4) adapters.

Index: gem.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/gem.c,v
retrieving revision 1.73
diff -u -p -r1.73 gem.c
--- gem.c 10 Feb 2008 16:54:23 -0000 1.73
+++ gem.c 1 Apr 2008 21:32:46 -0000
@@ -807,7 +807,6 @@ gem_init(struct ifnet *ifp)

ifp->if_flags |= IFF_RUNNING;
ifp->if_flags &= ~IFF_OACTIVE;
- ifp->if_timer = 0;
splx(s);

return (0);
@@ -1667,11 +1666,13 @@ gem_tint(struct gem_softc *sc, u_int32_t
}
sc->sc_tx_cons = cons;

- gem_start(ifp);
-
+ if (sc->sc_tx_cnt < GEM_NTXDESC - 2)
+ ifp->if_flags &= ~IFF_OACTIVE;
if (sc->sc_tx_cnt == 0)
ifp->if_timer = 0;

+ gem_start(ifp);
+
return (1);
}

@@ -1705,7 +1706,7 @@ gem_start(struct ifnet *ifp)
* or fail...
*/
if (gem_encap(sc, m, &bix)) {
- ifp->if_timer = 2;
+ ifp->if_flags |= IFF_OACTIVE;
break;
}

--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
no comments
diggit! del.icio.us! reddit!
Your Ad Here