[VLAN]: Fix promiscous/allmulti synchronization races
The set_multicast_list function may be called without holding the rtnl mutex, resulting in races when changing the underlying device's promiscous and allmulti state. Use the change_rx_mode hook, which is always invoked under the rtnl. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
a0a400d79e
commit
6c78dcbd47
@@ -69,6 +69,7 @@ int vlan_dev_set_vlan_flag(const struct net_device *dev,
|
||||
u32 flag, short flag_val);
|
||||
void vlan_dev_get_realdev_name(const struct net_device *dev, char *result);
|
||||
void vlan_dev_get_vid(const struct net_device *dev, unsigned short *result);
|
||||
void vlan_change_rx_flags(struct net_device *dev, int change);
|
||||
void vlan_dev_set_multicast_list(struct net_device *vlan_dev);
|
||||
|
||||
int vlan_check_real_dev(struct net_device *real_dev, unsigned short vlan_id);
|
||||
|
Reference in New Issue
Block a user