Module Name: src Committed By: msaitoh Date: Thu Nov 21 06:22:09 UTC 2019
Modified Files: src/sys/dev/pci: if_age.c Log Message: Fix multicast handling. All Atheros controllers use big-endian form when computing multicast hash. Same as OpenBSD. To generate a diff of this commit: cvs rdiff -u -r1.62 -r1.63 src/sys/dev/pci/if_age.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/if_age.c diff -u src/sys/dev/pci/if_age.c:1.62 src/sys/dev/pci/if_age.c:1.63 --- src/sys/dev/pci/if_age.c:1.62 Wed Oct 30 07:26:28 2019 +++ src/sys/dev/pci/if_age.c Thu Nov 21 06:22:09 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_age.c,v 1.62 2019/10/30 07:26:28 msaitoh Exp $ */ +/* $NetBSD: if_age.c,v 1.63 2019/11/21 06:22:09 msaitoh Exp $ */ /* $OpenBSD: if_age.c,v 1.1 2009/01/16 05:00:34 kevlo Exp $ */ /*- @@ -31,7 +31,7 @@ /* Driver for Attansic Technology Corp. L1 Gigabit Ethernet. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_age.c,v 1.62 2019/10/30 07:26:28 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_age.c,v 1.63 2019/11/21 06:22:09 msaitoh Exp $"); #include "vlan.h" @@ -2289,7 +2289,7 @@ age_rxfilter(struct age_softc *sc) ETHER_LOCK(ec); ETHER_FIRST_MULTI(step, ec, enm); while (enm != NULL) { - crc = ether_crc32_le(enm->enm_addrlo, ETHER_ADDR_LEN); + crc = ether_crc32_be(enm->enm_addrlo, ETHER_ADDR_LEN); mchash[crc >> 31] |= 1 << ((crc >> 26) & 0x1f); ETHER_NEXT_MULTI(step, enm); }