aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2022-04-13 16:01:19 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2022-04-13 16:01:19 +0000
commit07ede751612f8879675e2970b3875ea3831e2b9c (patch)
tree9dc13aa386b108614b34faaf62624f513d572fbd
parent395cc55d896654b8f75071e71e856b22aed87da5 (diff)
downloadsrc-07ede751612f8879675e2970b3875ea3831e2b9c.tar.gz
src-07ede751612f8879675e2970b3875ea3831e2b9c.zip
e1000: Update mc filter before RCTL flags
Update mc filter array before changing RCTL flags as in 5a3eb6207a35 Approved by: grehan MFC after: 2 weeks
-rw-r--r--sys/dev/e1000/if_em.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index cb0c01c9c65d..b3871361d335 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -1735,6 +1735,9 @@ em_if_multi_set(if_ctx_t ctx)
mcnt = if_foreach_llmaddr(ifp, em_copy_maddr, mta);
+ if (mcnt < MAX_NUM_MULTICAST_ADDRESSES)
+ e1000_update_mc_addr_list(&sc->hw, mta, mcnt);
+
reg_rctl = E1000_READ_REG(&sc->hw, E1000_RCTL);
if (if_getflags(ifp) & IFF_PROMISC)
@@ -1748,9 +1751,6 @@ em_if_multi_set(if_ctx_t ctx)
E1000_WRITE_REG(&sc->hw, E1000_RCTL, reg_rctl);
- if (mcnt < MAX_NUM_MULTICAST_ADDRESSES)
- e1000_update_mc_addr_list(&sc->hw, mta, mcnt);
-
if (sc->hw.mac.type == e1000_82542 &&
sc->hw.revision_id == E1000_REVISION_2) {
reg_rctl = E1000_READ_REG(&sc->hw, E1000_RCTL);