diff options
author | Patrick McHardy <kaber@trash.net> | 2007-07-14 21:52:56 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-07-14 21:52:56 -0400 |
commit | 6c78dcbd47a68a7d25d2bee7a6c74b9136cb5fde (patch) | |
tree | 21e4a2ea3eb7ed87ce525c59bb8c4d23d8c84589 /include/linux | |
parent | a0a400d79e3dd7843e7e81baa3ef2957bdc292d0 (diff) |
[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>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/if_vlan.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 61a57dc2ac99..7f71df4c952f 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
@@ -132,8 +132,6 @@ struct vlan_dev_info { | |||
132 | * made, in order to feed the right changes down | 132 | * made, in order to feed the right changes down |
133 | * to the real hardware... | 133 | * to the real hardware... |
134 | */ | 134 | */ |
135 | int old_allmulti; /* similar to above. */ | ||
136 | int old_promiscuity; /* similar to above. */ | ||
137 | struct net_device *real_dev; /* the underlying device/interface */ | 135 | struct net_device *real_dev; /* the underlying device/interface */ |
138 | unsigned char real_dev_addr[ETH_ALEN]; | 136 | unsigned char real_dev_addr[ETH_ALEN]; |
139 | struct proc_dir_entry *dent; /* Holds the proc data */ | 137 | struct proc_dir_entry *dent; /* Holds the proc data */ |