aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ale
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2009-09-29 23:03:16 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2009-09-29 23:03:16 +0000
commitcb2cdeceb5edf896a67bbade636283f7697b3482 (patch)
tree783db1a1a691f2fb5dc828555ab660c989ec7d7b /sys/dev/ale
parent072a126d12b4427e7fa2cc448b604f92e4cfe5f6 (diff)
downloadsrc-cb2cdeceb5edf896a67bbade636283f7697b3482.tar.gz
src-cb2cdeceb5edf896a67bbade636283f7697b3482.zip
Fix multicast handling. All Atheros controllers use big-endian form
in computing multicast hash. PR: kern/139137
Notes
Notes: svn path=/head/; revision=197627
Diffstat (limited to 'sys/dev/ale')
-rw-r--r--sys/dev/ale/if_ale.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/ale/if_ale.c b/sys/dev/ale/if_ale.c
index 65e068fa5db3..305eda4810a3 100644
--- a/sys/dev/ale/if_ale.c
+++ b/sys/dev/ale/if_ale.c
@@ -3060,7 +3060,7 @@ ale_rxfilter(struct ale_softc *sc)
TAILQ_FOREACH(ifma, &sc->ale_ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
- crc = ether_crc32_le(LLADDR((struct sockaddr_dl *)
+ crc = ether_crc32_be(LLADDR((struct sockaddr_dl *)
ifma->ifma_addr), ETHER_ADDR_LEN);
mchash[crc >> 31] |= 1 << ((crc >> 26) & 0x1f);
}