Unix Technical Forum

SEO

vBulletin Search Engine Optimization


Go Back   Unix Technical Forum > Unix Operating Systems > OpenBSD > mailing.openbsd.tech

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 05-10-2008, 02:01 PM
Brad
 
Posts: n/a
Default gem(4) diff needs testing

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.

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 05:27 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145