Page MenuHomeFreeBSD

e1000: Fix setting the promiscuous mode
ClosedPublic

Authored by zlei on Jan 30 2026, 4:15 PM.
Tags
None
Referenced Files
F164764499: D54973.id170786.diff
Mon, Aug 3, 7:44 PM
Unknown Object (File)
Sun, Aug 2, 2:35 AM
Unknown Object (File)
Sun, Aug 2, 2:08 AM
Unknown Object (File)
Sat, Aug 1, 5:11 AM
Unknown Object (File)
Thu, Jul 30, 7:06 AM
Unknown Object (File)
Tue, Jul 28, 7:12 AM
Unknown Object (File)
Sat, Jul 18, 8:38 PM
Unknown Object (File)
Wed, Jul 15, 7:04 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 Skipped
Unit
Tests Skipped