]> 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)
commit811e4e781cd64546c01a1a169be8ece9e54a5522
treee215dfc70ad137d820ff3f105c0a3f8893138845
parent6e4fdeb976d9b89acc4e92ed21688614c5a11c55
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