]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: remove workarounds for changing master promisc/allmulti only while up
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 2 Mar 2022 19:14:08 +0000 (21:14 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Mar 2022 14:15:31 +0000 (14:15 +0000)
commit8d2e5191b88d02c1aa23d484ebe862d4ba7f32b3
treee215dfc70ad137d820ff3f105c0a3f8893138845
parent6c3ba553b025d2322e055b47ecae82c193e81988
net: dsa: remove workarounds for changing master promisc/allmulti only while up

Lennert Buytenhek explains in commit e40cb173c11d ("dsa: fix master
interface allmulti/promisc handling"), dated Nov 2008, that changing the
promiscuity of interfaces that are down (here the master) is broken.

This fact regarding promisc/allmulti has changed since commit
66e39cc47ec6 ("net: only invoke dev->change_rx_flags when device is UP")
by Vlad Yasevich, dated Nov 2013.

Therefore, DSA now has unnecessary complexity to handle master state
transitions from down to up. In fact, syncing the unicast and multicast
addresses can happen completely asynchronously to the administrative
state changes.

This change reduces that complexity by effectively fully reverting
commit e40cb173c11d ("dsa: fix master interface allmulti/promisc
handling").

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c