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, Mar 6, 11:44 AM
Unknown Object (File)
Fri, Feb 27, 7:47 AM
Unknown Object (File)
Thu, Feb 19, 10:56 PM
Unknown Object (File)
Sat, Feb 14, 8:53 AM
Unknown Object (File)
Sat, Feb 14, 8:37 AM
Unknown Object (File)
Sat, Feb 14, 8:37 AM
Unknown Object (File)
Feb 3 2026, 11:51 AM
Unknown Object (File)
Feb 3 2026, 6:07 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