Module Name: src
Committed By: bouyer
Date: Tue Mar 24 21:50:03 UTC 2009
Modified Files:
src/sys/dev/pci [netbsd-4]: if_wm.c
Log Message:
Pull up following revision(s) (requested by msaitoh in ticket #1291):
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.131.2.7 -r1.131.2.8 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.131.2.7 src/sys/dev/pci/if_wm.c:1.131.2.8
--- src/sys/dev/pci/if_wm.c:1.131.2.7 Sat Dec 13 20:58:58 2008
+++ src/sys/dev/pci/if_wm.c Tue Mar 24 21:50:03 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_wm.c,v 1.131.2.7 2008/12/13 20:58:58 bouyer Exp $ */
+/* $NetBSD: if_wm.c,v 1.131.2.8 2009/03/24 21:50:03 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.131.2.7 2008/12/13 20:58:58 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.131.2.8 2009/03/24 21:50:03 bouyer Exp $");
#include "bpfilter.h"
#include "rnd.h"
@@ -3887,7 +3887,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);
@@ -3932,7 +3932,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;