summaryrefslogtreecommitdiff
path: root/sys/dev/ic/elink3.c
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1996-09-29 20:59:41 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1996-09-29 20:59:41 +0000
commit4466be9850425b8bec29fd728495340174337699 (patch)
tree250e9883aae99990f75696b070169aa55b8effcd /sys/dev/ic/elink3.c
parent42e654f9aa349230e47237252275c5e7ae79e3f8 (diff)
Fix for PCI etherlink3 packet-receive bug; netbsd pr#2661, jonathan@DSG.Stanford.EDU
Diffstat (limited to 'sys/dev/ic/elink3.c')
-rw-r--r--sys/dev/ic/elink3.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/ic/elink3.c b/sys/dev/ic/elink3.c
index 4b0ab2d71ab..a893c2869a6 100644
--- a/sys/dev/ic/elink3.c
+++ b/sys/dev/ic/elink3.c
@@ -194,6 +194,11 @@ epinit(sc)
bus_io_write_1(bc, ioh, EP_W2_ADDR_0 + i,
sc->sc_arpcom.ac_enaddr[i]);
+ if (sc->bustype == EP_BUS_PCI || sc->bustype == EP_BUS_EISA)
+ /* Reset the station-address receive filter */
+ for (i = 0; i < 6; i++)
+ bus_io_write_1(bc, ioh,EP_W2_RECVMASK_0 + i, 0);
+
bus_io_write_2(bc, ioh, EP_COMMAND, RX_RESET);
bus_io_write_2(bc, ioh, EP_COMMAND, TX_RESET);