aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2008-02-03 05:18:14 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2008-02-03 05:18:14 +0000
commit005c6b20f786196006319183901808a011b1b083 (patch)
treec099d2df3a71ac41b73b2ef29b2ebe618a535036
parentcfe66b59d0c971b4376bffb906eb125ede23b411 (diff)
Notes
-rw-r--r--sys/dev/re/if_re.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index 8abe82345b97..9f426df2cf3a 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -643,8 +643,12 @@ re_setmulti(sc)
if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
if (ifp->if_flags & IFF_PROMISC)
rxfilt |= RL_RXCFG_RX_ALLPHYS;
- if (ifp->if_flags & IFF_ALLMULTI)
- rxfilt |= RL_RXCFG_RX_MULTI;
+ /*
+ * Unlike other hardwares, we have to explicitly set
+ * RL_RXCFG_RX_MULTI to receive multicast frames in
+ * promiscuous mode.
+ */
+ rxfilt |= RL_RXCFG_RX_MULTI;
CSR_WRITE_4(sc, RL_RXCFG, rxfilt);
CSR_WRITE_4(sc, RL_MAR0, 0xFFFFFFFF);
CSR_WRITE_4(sc, RL_MAR4, 0xFFFFFFFF);