Page MenuHomeFreeBSD

e1000: Fix setting the promiscuous mode
ClosedPublic

Authored by zlei on Jan 30 2026, 4:15 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Aug 21, 11:31 PM
Unknown Object (File)
Thu, Aug 20, 5:15 PM
Unknown Object (File)
Thu, Aug 20, 1:10 AM
Unknown Object (File)
Thu, Aug 13, 8:55 PM
Unknown Object (File)
Thu, Aug 13, 2:11 PM
Unknown Object (File)
Thu, Aug 13, 2:10 PM
Unknown Object (File)
Thu, Aug 13, 11:56 AM
Unknown Object (File)
Sun, Aug 9, 3:38 AM
Subscribers

Details

Summary

The variable reg_rctl stores the value read from reg E1000_RCTL. It
may contains 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. Calling em_if_vlan_filter_disable()
did this, 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
Tested by: vova@zote.me
Fixes: 2796f7cab107 e1000: Fix up HW vlan ops
MFC after: 5 days

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable