HomeFreeBSD

e1000: Fix setting the promiscuous mode

Description

e1000: Fix setting the promiscuous mode

The variable reg_rctl stores the value read from reg E1000_RCTL. It
may contain bits E1000_RCTL_VFE and E1000_RCTL_CFIEN which control
VLAN hardware filter feature. The promiscuous mode implies all tagged
or untagged packets should be accepted, so the VLAN hardware filter
feature should be disabled when enabling the promiscuous mode.
Calling em_if_vlan_filter_disable() did the task, but later writing
the value of reg_rctl back to the reg E1000_RCTL may restore the
feature.

Move the calling of em_if_vlan_filter_disable() after writing the reg
to fix that.

PR: 292759
Reviewed by: kbowling
Tested by: vova@zote.me
Fixes: 2796f7cab107 e1000: Fix up HW vlan ops
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D54973

Details

Provenance
zleiAuthored on Feb 2 2026, 12:26 PM
Reviewer
rG2796f7cab107: e1000: Fix up HW vlan ops
Differential Revision
D54973: e1000: Fix setting the promiscuous mode
Parents
rG6d37c3db62ba: bcmp(3): update manpage to following the Posix Standard
Branches
Unknown
Tags
Unknown