summaryrefslogtreecommitdiffstats
path: root/sys/pci/if_dc.c
diff options
context:
space:
mode:
authormbr <mbr@FreeBSD.org>2003-05-01 09:31:01 +0000
committermbr <mbr@FreeBSD.org>2003-05-01 09:31:01 +0000
commit7258dc790156f8b8a934abd0192868b59659a0b2 (patch)
tree570139ce5dc5585559e77de053d0de558092502c /sys/pci/if_dc.c
parenta8c00fe70be62dae87b846d525773f88b53a65df (diff)
downloadFreeBSD-src-7258dc790156f8b8a934abd0192868b59659a0b2.zip
FreeBSD-src-7258dc790156f8b8a934abd0192868b59659a0b2.tar.gz
Use only a 64bit hash filter table for ADM-Centaur cards like the
Accton EN2242 and the ADMtek AN985 cards. PR: 32699 Submitted by: Jean-Luc Richier <Jean-Luc.Richier@imag.fr> Reviewed by: phk MFC after: 2 weeks
Diffstat (limited to 'sys/pci/if_dc.c')
-rw-r--r--sys/pci/if_dc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/pci/if_dc.c b/sys/pci/if_dc.c
index a350d47..294f81b 100644
--- a/sys/pci/if_dc.c
+++ b/sys/pci/if_dc.c
@@ -1241,7 +1241,10 @@ dc_setfilt_admtek(sc)
TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
- h = dc_crc_be(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
+ if (DC_IS_CENTAUR(sc))
+ h = dc_crc_le(sc, LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
+ else
+ h = dc_crc_be(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
if (h < 32)
hashes[0] |= (1 << h);
else
@@ -1985,6 +1988,7 @@ dc_attach(dev)
case DC_DEVICEID_EN2242:
case DC_DEVICEID_HAWKING_PN672TX:
sc->dc_type = DC_TYPE_AN985;
+ sc->dc_flags |= DC_64BIT_HASH;
sc->dc_flags |= DC_TX_USE_TX_INTR;
sc->dc_flags |= DC_TX_ADMTEK_WAR;
sc->dc_pmode = DC_PMODE_MII;
OpenPOWER on IntegriCloud