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, May 22, 11:44 AM
Unknown Object (File)
Thu, May 14, 8:44 AM
Unknown Object (File)
Thu, May 14, 12:52 AM
Unknown Object (File)
Thu, May 14, 12:16 AM
Unknown Object (File)
Wed, May 13, 11:48 PM
Unknown Object (File)
Wed, May 13, 4:32 PM
Unknown Object (File)
Mon, May 11, 10:11 AM
Unknown Object (File)
Wed, Apr 29, 8:12 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