Module Name: src Committed By: jmcneill Date: Tue Jan 6 11:19:16 UTC 2015
Modified Files: src/sys/arch/arm/rockchip: rockchip_emac.c Log Message: fix multicast hash calculation To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/rockchip/rockchip_emac.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/arch/arm/rockchip/rockchip_emac.c diff -u src/sys/arch/arm/rockchip/rockchip_emac.c:1.5 src/sys/arch/arm/rockchip/rockchip_emac.c:1.6 --- src/sys/arch/arm/rockchip/rockchip_emac.c:1.5 Mon Jan 5 23:00:52 2015 +++ src/sys/arch/arm/rockchip/rockchip_emac.c Tue Jan 6 11:19:16 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: rockchip_emac.c,v 1.5 2015/01/05 23:00:52 jmcneill Exp $ */ +/* $NetBSD: rockchip_emac.c,v 1.6 2015/01/06 11:19:16 jmcneill Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill <jmcne...@invisible.ca> @@ -29,7 +29,7 @@ #include "opt_rkemac.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rockchip_emac.c,v 1.5 2015/01/05 23:00:52 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rockchip_emac.c,v 1.6 2015/01/06 11:19:16 jmcneill Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -908,7 +908,7 @@ rkemac_setmulti(struct rkemac_softc *sc) hashes[0] = hashes[1] = 0xffffffff; goto done; } - h = ether_crc32_le(enm->enm_addrlo, ETHER_ADDR_LEN); + h = ~ether_crc32_le(enm->enm_addrlo, ETHER_ADDR_LEN) >> 26; hashes[h >> 5] |= (1 << (h & 0x1f)); ETHER_NEXT_MULTI(step, enm); }