aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/re
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2014-10-21 01:31:24 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2014-10-21 01:31:24 +0000
commitb8333e454650033303fa1c940901f1a21715a1c5 (patch)
tree19a5fe34a418149f7f63405ea177c851f5e79d0f /sys/dev/re
parenta5045426dbeec7b03fa2dce8c7c37f65604cc763 (diff)
downloadsrc-b8333e454650033303fa1c940901f1a21715a1c5.tar.gz
src-b8333e454650033303fa1c940901f1a21715a1c5.zip
It seems multicast filtering of RTL8168F does not work. Workaround
the silicon bug by accepting any multicast packets. PR: 193488 MFC After: 1 week
Notes
Notes: svn path=/head/; revision=273359
Diffstat (limited to 'sys/dev/re')
-rw-r--r--sys/dev/re/if_re.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index bb4e6727c9c5..e27a81276df1 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -703,6 +703,12 @@ re_set_rxmode(struct rl_softc *sc)
rxfilt |= RL_RXCFG_RX_MULTI;
}
+ if (sc->rl_hwrev->rl_rev == RL_HWREV_8168F) {
+ /* Disable multicast filtering due to silicon bug. */
+ hashes[0] = 0xffffffff;
+ hashes[1] = 0xffffffff;
+ }
+
done:
CSR_WRITE_4(sc, RL_MAR0, hashes[0]);
CSR_WRITE_4(sc, RL_MAR4, hashes[1]);