summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorJim Rees <rees@cvs.openbsd.org>2002-01-31 04:07:39 +0000
committerJim Rees <rees@cvs.openbsd.org>2002-01-31 04:07:39 +0000
commitf6153cf2525bd3462f8042875b43b84f28cc9450 (patch)
tree839c630c5d209bd3a6f1f26758eb3a4ce20fdc0f /sys/dev/ic
parent21d8ae059d2a81f4fd840680b415c5a415385513 (diff)
zero out csum when re-using mbuf (cures 50% packet loss under load)
angelos@ ok
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/elink3.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/ic/elink3.c b/sys/dev/ic/elink3.c
index bba31c3f5ce..8f04b0d082c 100644
--- a/sys/dev/ic/elink3.c
+++ b/sys/dev/ic/elink3.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: elink3.c,v 1.54 2001/09/20 17:02:31 mpech Exp $ */
+/* $OpenBSD: elink3.c,v 1.55 2002/01/31 04:07:38 rees Exp $ */
/* $NetBSD: elink3.c,v 1.32 1997/05/14 00:22:00 thorpej Exp $ */
/*
@@ -1244,8 +1244,8 @@ epintr(arg)
if (status & S_RX_COMPLETE)
epread(sc);
if (status & S_TX_AVAIL) {
- sc->sc_arpcom.ac_if.if_flags &= ~IFF_OACTIVE;
- epstart(&sc->sc_arpcom.ac_if);
+ ifp->if_flags &= ~IFF_OACTIVE;
+ epstart(ifp);
}
if (status & S_CARD_FAILURE) {
epreset(sc);
@@ -1395,6 +1395,7 @@ epget(sc, totlen)
m->m_data = m->m_pktdat;
m->m_flags = M_PKTHDR;
m_tag_init(m);
+ m->m_pkthdr.csum = 0;
}
m->m_pkthdr.rcvif = ifp;
m->m_pkthdr.len = totlen;