linux/net/mac80211
Johannes Berg 53918994b7 [PATCH] mac80211: fix iff_promiscs, iff_allmultis race
When we update the counters iff_promiscs and iff_allmultis
in struct ieee80211_local we have no common lock held to
protect them. The problem is that the update to each counter
may not be atomic, so we could end up with iff_promiscs == -1
in unfortunate conditions. To fix it, use atomic_t values.
It doesn't matter whether the two counters are updated
together atomically or not, if there are two invocations
of set_multicast_list we will end up with multiple
configure_filter() invocations of which the latter will always
be correct.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-10-10 16:53:16 -07:00
..
aes_ccm.c [NET]: DIV_ROUND_UP cleanup (part two) 2007-10-10 16:48:37 -07:00
aes_ccm.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
cfg.c [MAC80211]: rename ieee80211_cfg.h to cfg.h 2007-10-10 16:52:34 -07:00
cfg.h [MAC80211]: rename ieee80211_cfg.h to cfg.h 2007-10-10 16:52:34 -07:00
debugfs_key.c [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
debugfs_key.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_netdev.c [PATCH] mac80211: validate VLAN interfaces better 2007-10-10 16:52:57 -07:00
debugfs_netdev.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_sta.c [MAC80211]: kill vlan_id 2007-10-10 16:52:33 -07:00
debugfs_sta.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs.c [MAC80211]: remove key threshold stuff 2007-10-10 16:52:29 -07:00
debugfs.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
event.c [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
hostapd_ioctl.h [MAC80211]: remove key threshold stuff 2007-10-10 16:52:29 -07:00
ieee80211_common.h [MAC80211]: remove key threshold stuff 2007-10-10 16:52:29 -07:00
ieee80211_i.h [PATCH] mac80211: fix iff_promiscs, iff_allmultis race 2007-10-10 16:53:16 -07:00
ieee80211_iface.c [PATCH] mac80211: fix vlan bug 2007-10-10 16:53:15 -07:00
ieee80211_ioctl.c [MAC80211]: remove key threshold stuff 2007-10-10 16:52:29 -07:00
ieee80211_key.h [PATCH] mac80211: remove crypto algorithm typedef 2007-10-10 16:53:00 -07:00
ieee80211_led.c [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
ieee80211_led.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
ieee80211_rate.c [MAC80211]: print out wiphy name instead of master device 2007-10-10 16:52:32 -07:00
ieee80211_rate.h [MAC80211]: move some rate control functions out of ieee80211.c 2007-10-10 16:47:35 -07:00
ieee80211_sta.c [PATCH] mac80211: fix virtual interface locking 2007-10-10 16:53:00 -07:00
ieee80211.c [PATCH] mac80211: fix iff_promiscs, iff_allmultis race 2007-10-10 16:53:16 -07:00
Kconfig [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
key.c [PATCH] mac80211: remove crypto algorithm typedef 2007-10-10 16:53:00 -07:00
Makefile [MAC80211]: rename ieee80211_cfg.c to cfg.c 2007-10-10 16:52:32 -07:00
michael.c [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
michael.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
rc80211_simple.c [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
regdomain.c [MAC80211]: remove turbo modes 2007-10-10 16:49:27 -07:00
rx.c [PATCH] mac80211: fix iff_promiscs, iff_allmultis race 2007-10-10 16:53:16 -07:00
sta_info.c [MAC80211]: print out wiphy name instead of master device 2007-10-10 16:52:32 -07:00
sta_info.h [MAC80211]: kill vlan_id 2007-10-10 16:52:33 -07:00
tkip.c [PATCH] mac80211: fix TKIP IV update 2007-10-10 16:53:16 -07:00
tkip.h [PATCH] mac80211: fix TKIP IV update 2007-10-10 16:53:16 -07:00
tx.c [PATCH] mac80211: consolidate encryption 2007-10-10 16:53:14 -07:00
util.c [MAC80211]: fix warnings introduced by the doc patches 2007-10-10 16:52:30 -07:00
wep.c [PATCH] mac80211: remove ieee80211_wep_get_keyidx 2007-10-10 16:53:14 -07:00
wep.h [PATCH] mac80211: remove ieee80211_wep_get_keyidx 2007-10-10 16:53:14 -07:00
wme.c [MAC80211]: clean up whitespace 2007-10-10 16:48:55 -07:00
wme.h [MAC80211]: move QoS rx handlers into rx.c 2007-10-10 16:47:30 -07:00
wpa.c [PATCH] mac80211: fix TKIP IV update 2007-10-10 16:53:16 -07:00
wpa.h [PATCH] mac80211: consolidate encryption 2007-10-10 16:53:14 -07:00