linux-hardened/net/mac80211
Christian Lamparter 512119b36f mac80211: fix race between next beacon dtim and ieee80211_get_buffered_bc
On review of 'zd1211rw: implement beacon fetching and handling
ieee80211_get_buffered_bc()', Christian Lamparter noted that [1]:

   Since zd_beacon_done also uploads the next beacon so long in advance,
   there could be an equally long race between the outdated state of the
   next beacon's DTIM broadcast traffic indicator (802.11-2007 7.3.2.6)
   which -in your case- was uploaded almost a beacon interval ago and
   the xmit of ieee80211_get_buffered_bc *now*.

   The dtim bc/mc bit might be not set, when a mc/bc arrived after the
   beacon was uploaded, but before the "beacon done event" from the
   hardware. So, dozing stations don't expect the broadcast traffic
   and of course, they might miss it completely.

   It's probably better to fix this in mac80211 (see the attached hack).

[1] http://marc.info/?l=linux-wireless&m=129435041117256&w=2

CC: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-02-04 16:29:49 -05:00
..
aes_ccm.c mac80211: Remove redundant checks for NULL before calls to crypto_free_cipher() 2010-11-15 13:26:11 -05:00
aes_ccm.h
aes_cmac.c mac80211: Remove redundant checks for NULL before calls to crypto_free_cipher() 2010-11-15 13:26:11 -05:00
aes_cmac.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
agg-rx.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2011-01-28 16:23:14 -05:00
agg-tx.c mac80211: allow advertising correct maximum aggregate size 2011-01-19 11:36:12 -05:00
cfg.c mac80211: allow GO to scan like AP 2011-02-03 16:44:44 -05:00
cfg.h
chan.c cfg80211/mac80211: use lockdep_assert_held 2010-09-16 15:46:00 -04:00
debugfs.c mac80211: refactor debugfs function generation code 2010-11-15 13:24:48 -05:00
debugfs.h mac80211: refactor debugfs function generation code 2010-11-15 13:24:48 -05:00
debugfs_key.c mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
debugfs_key.h mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
debugfs_netdev.c mac80211: Add testing functionality for TKIP 2011-02-03 16:45:29 -05:00
debugfs_netdev.h mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_sta.c mac80211: Add timeout to BA session start API 2010-12-15 17:03:59 -05:00
debugfs_sta.h
driver-ops.h mac80211: track receiver's aggregation reorder buffer size 2011-01-19 11:36:11 -05:00
driver-trace.c mac80211: fix sparse warnings/errors 2009-08-04 16:43:25 -04:00
driver-trace.h mac80211: use DECLARE_EVENT_CLASS 2011-01-26 16:15:45 -05:00
event.c cfg80211: use proper allocation flags 2009-07-10 15:01:49 -04:00
ht.c mac80211: fix SMPS request 2010-10-13 15:45:23 -04:00
ibss.c cfg80211: Extend channel to frequency mapping for 802.11j 2011-01-21 15:34:17 -05:00
ieee80211_i.h mac80211: fix race between next beacon dtim and ieee80211_get_buffered_bc 2011-02-04 16:29:49 -05:00
iface.c mac80211: Recalculate channel-type on iface removal. 2011-02-03 16:44:43 -05:00
Kconfig Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-12-26 22:37:05 -08:00
key.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2011-01-05 14:35:41 -05:00
key.h mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
led.c mac80211: remove stray extern 2011-01-05 16:07:12 -05:00
led.h mac80211: selective throughput LED trigger active 2010-12-22 14:33:37 -05:00
main.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2011-01-28 16:23:14 -05:00
Makefile mac80211: add the minstrel_ht rate control algorithm 2010-06-02 16:12:59 -04:00
mesh.c cfg80211: Extend channel to frequency mapping for 802.11j 2011-01-21 15:34:17 -05:00
mesh.h mac80211: Remove unused third address from mesh address extension header. 2010-12-20 14:49:47 -05:00
mesh_hwmp.c nl80211/mac80211: define and allow configuring mesh element TTL 2010-12-06 16:01:28 -05:00
mesh_pathtbl.c nl80211/mac80211: define and allow configuring mesh element TTL 2010-12-06 16:01:28 -05:00
mesh_plink.c mac80211: Let userspace enable and configure vendor specific path selection. 2010-12-20 14:46:57 -05:00
michael.c
michael.h
mlme.c mac80211: Warn users if HT fails because of freq mismatch. 2011-02-03 16:42:44 -05:00
offchannel.c mac80211: implement off-channel TX using hw r-o-c offload 2011-01-05 16:07:12 -05:00
pm.c mac80211: assure we also cancel deferred scan request 2010-10-06 16:30:42 -04:00
rate.c cfg80211/mac80211: improve ad-hoc multicast rate handling 2010-11-24 16:19:35 -05:00
rate.h mac80211: add the minstrel_ht rate control algorithm 2010-06-02 16:12:59 -04:00
rc80211_minstrel.c minstrel: don't complain about feedback for unrequested rates 2010-07-26 15:09:04 -04:00
rc80211_minstrel.h minstrel: make the rate control ops reusable from another rc implementation 2010-03-10 17:44:23 -05:00
rc80211_minstrel_debugfs.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
rc80211_minstrel_ht.c mac80211: Add timeout to BA session start API 2010-12-15 17:03:59 -05:00
rc80211_minstrel_ht.h minstrel_ht: move minstrel_mcs_groups declaration to header file 2010-06-24 15:42:18 -04:00
rc80211_minstrel_ht_debugfs.c mac80211: disallow seeks in minstrel debug code 2010-09-16 10:33:17 +02:00
rc80211_pid.h
rc80211_pid_algo.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rc80211_pid_debugfs.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
rx.c mac80211: pass up beacons from external BSS when operating as AP 2011-02-03 16:44:44 -05:00
scan.c cfg80211: Extend channel to frequency mapping for 802.11j 2011-01-21 15:34:17 -05:00
spectmgmt.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
sta_info.c mac80211: add HW flag for disabling auto link-PS in AP mode 2011-02-03 16:44:44 -05:00
sta_info.h mac80211: track receiver's aggregation reorder buffer size 2011-01-19 11:36:11 -05:00
status.c mac80211: add HW flag for disabling auto link-PS in AP mode 2011-02-03 16:44:44 -05:00
tkip.c mac80211: remove wep dependency 2010-07-08 16:35:50 -04:00
tkip.h mac80211: remove wep dependency 2010-07-08 16:35:50 -04:00
tx.c mac80211: fix race between next beacon dtim and ieee80211_get_buffered_bc 2011-02-04 16:29:49 -05:00
util.c mac80211: selective throughput LED trigger active 2010-12-22 14:33:37 -05:00
wep.c mac80211: don't kmalloc 16 bytes 2010-10-11 15:04:23 -04:00
wep.h mac80211: remove wep dependency 2010-07-08 16:35:50 -04:00
wme.c mac80211: cleanup select_queue 2010-12-22 15:44:22 -05:00
wme.h mac80211: fix skb buffering issue 2010-01-05 16:21:40 -05:00
work.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-15 16:33:28 -05:00
wpa.c mac80211: Add testing functionality for TKIP 2011-02-03 16:45:29 -05:00
wpa.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00