]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
e1000: Correct promisc multicast filter handling
authorKevin Bowling <kbowling@FreeBSD.org>
Fri, 16 Apr 2021 23:15:50 +0000 (16:15 -0700)
committerKevin Bowling <kbowling@FreeBSD.org>
Mon, 19 Apr 2021 19:49:55 +0000 (12:49 -0700)
commit4b38eed76da9c36f09bff33b5cf15687cd99016f
treeab8de7602642004fce4bf1df24f4668e80d3edf3
parentdeecaa144526a5d001aeb99149e2139601388427
e1000: Correct promisc multicast filter handling

There are a number of issues in the e1000 multicast filter handling
that have been present for a long time. Take the updated approach from
ixgbe(4) which does not have the issues.

The issues are outlined in the PR, in particular this solves crossing
over and under the hardware's filter limit, not programming the
hardware filter when we are above its limit, disabling SBP (show bad
packets) when the tunable is enabled and exiting promiscuous mode, and
an off-by-one error in the em_copy_maddr function.

PR: 140647
Reported by: jtl
Reviewed by: markj
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D29789
sys/dev/e1000/if_em.c