Module Name: src
Committed By: bouyer
Date: Thu Mar 26 20:27:18 UTC 2009
Modified Files:
src/sys/dev/pci [netbsd-3]: if_wm.c
Log Message:
Pull up following revision(s) (requested by msaitoh in ticket #2002):
sys/dev/pci/if_wm.c: revision 1.166
Fix the multicast hash bug on ICH9's wm.
Now we can catch ff02::9 on ICH9's wm. Fixes PR#37976.
To generate a diff of this commit:
cvs rdiff -u -r1.100.2.12 -r1.100.2.13 src/sys/dev/pci/if_wm.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_wm.c
diff -u src/sys/dev/pci/if_wm.c:1.100.2.12 src/sys/dev/pci/if_wm.c:1.100.2.13
--- src/sys/dev/pci/if_wm.c:1.100.2.12 Sat Dec 13 20:49:50 2008
+++ src/sys/dev/pci/if_wm.c Thu Mar 26 20:27:18 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_wm.c,v 1.100.2.12 2008/12/13 20:49:50 bouyer Exp $ */
+/* $NetBSD: if_wm.c,v 1.100.2.13 2009/03/26 20:27:18 bouyer Exp $ */
/*
* Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc.
@@ -79,7 +79,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.100.2.12 2008/12/13 20:49:50 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.100.2.13 2009/03/26 20:27:18 bouyer Exp $");
#include "bpfilter.h"
#include "rnd.h"
@@ -3701,7 +3701,7 @@
static const int ich8_hi_shift[4] = { 2, 3, 4, 6 };
uint32_t hash;
- if (sc->sc_type == WM_T_ICH8) {
+ if ((sc->sc_type == WM_T_ICH8) || (sc->sc_type == WM_T_ICH9)) {
hash = (enaddr[4] >> ich8_lo_shift[sc->sc_mchash_type]) |
(((uint16_t) enaddr[5]) << ich8_hi_shift[sc->sc_mchash_type]);
return (hash & 0x3ff);
@@ -3746,7 +3746,7 @@
* Set the station address in the first RAL slot, and
* clear the remaining slots.
*/
- if (sc->sc_type == WM_T_ICH8)
+ if ((sc->sc_type == WM_T_ICH8) || (sc->sc_type == WM_T_ICH9))
size = WM_ICH8_RAL_TABSIZE;
else
size = WM_RAL_TABSIZE;