android_kernel_xiaomi_sm8350/net
Igor Perminov 1f08e84ff6 mac80211: Fix [re]association power saving issue on AP side
Consider the following step-by step:
1. A STA authenticates and associates with the AP and exchanges
traffic.
2. The STA reports to the AP that it is going to PS state.
3. Some time later the STA device goes to the stand-by mode (not only
its wi-fi card, but the device itself) and drops the association state
without sending a disassociation frame.
4. The STA device wakes up and begins authentication with an
Auth frame as it hasn't been authenticated/associated previously.

At the step 4 the AP "remembers" the STA and considers it is still in
the PS state, so the AP buffers frames, which it has to send to the STA.
But the STA isn't actually in the PS state and so it neither checks
TIM bits nor reports to the AP that it isn't power saving.
Because of that authentication/[re]association fails.

To fix authentication/[re]association stage of this issue, Auth, Assoc
Resp and Reassoc Resp frames are transmitted disregarding of STA's power
saving state.

N.B. This patch doesn't fix further data frame exchange after
authentication/[re]association. A patch in hostapd is required to fix
that.

Signed-off-by: Igor Perminov <igor.perminov@inbox.ru>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-09-29 17:25:15 -04:00
..
9p virtio: add virtio IDs file 2009-09-23 22:26:32 +09:30
802
8021q net: fix vlan_get_size to include vlan_flags size 2009-09-26 20:16:07 -07:00
appletalk Have atalk_route_packet() return NET_RX_SUCCESS not NET_XMIT_SUCCESS 2009-09-14 17:02:47 -07:00
atm atm/br2684: netif_stop_queue() when atm device busy and netif_wake_queue() when we can send packets again. 2009-09-02 23:46:10 -07:00
ax25 ax25: Add missing dev_put in ax25_setsockopt 2009-09-28 12:26:28 -07:00
bluetooth Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2009-09-22 07:51:28 -07:00
bridge bridge: Fix double-free in br_add_if. 2009-09-28 12:54:25 -07:00
can can: fix NOHZ local_softirq_pending 08 warning 2009-09-15 01:31:34 -07:00
core wext: add back wireless/ dir in sysfs for cfg80211 interfaces 2009-09-28 16:55:07 -04:00
dcb net: fix double skb free in dcbnl 2009-09-26 20:16:15 -07:00
dccp mm: replace various uses of num_physpages by totalram_pages 2009-09-22 07:17:38 -07:00
decnet sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
dsa netdev: convert pseudo-devices to netdev_tx_t 2009-09-01 01:13:07 -07:00
econet
ethernet
ieee802154 ieee802154: add locking for seq numbers 2009-09-15 18:25:16 +04:00
ipv4 tunnel: eliminate recursion field 2009-09-24 15:39:22 -07:00
ipv6 Revert "sit: stateless autoconf for isatap" 2009-09-26 20:28:07 -07:00
ipx
irda sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
iucv af_iucv: fix race when queueing skbs on the backlog queue 2009-09-16 20:57:39 -07:00
key net: file_operations should be const 2009-09-02 01:03:53 -07:00
lapb
llc Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-09-02 00:32:56 -07:00
mac80211 mac80211: Fix [re]association power saving issue on AP side 2009-09-29 17:25:15 -04:00
netfilter sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
netlabel
netlink net: fix nlmsg len size for skb when error bit is set. 2009-09-26 20:16:11 -07:00
netrom Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-09-02 00:32:56 -07:00
packet
phonet Phonet: error on broadcast sending (unimplemented) 2009-09-24 15:38:57 -07:00
rds Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-09-17 20:53:52 -07:00
rfkill
rose net: constify remaining proto_ops 2009-09-14 17:03:09 -07:00
rxrpc trivial: fix typo "to to" in multiple files 2009-09-21 15:14:55 +02:00
sched trivial: fix typo "to to" in multiple files 2009-09-21 15:14:55 +02:00
sctp mm: replace various uses of num_physpages by totalram_pages 2009-09-22 07:17:38 -07:00
sunrpc net: fix htmldocs sunrpc, clnt.c 2009-09-24 15:39:14 -07:00
tipc tipc: fix test of bearer_priority range in tipc_register_media() 2009-08-29 00:19:42 -07:00
unix net: unix: fix sending fds in multiple buffers 2009-09-11 11:31:45 -07:00
wanrouter
wimax
wireless wext: add back wireless/ dir in sysfs for cfg80211 interfaces 2009-09-28 16:55:07 -04:00
x25
xfrm net: file_operations should be const 2009-09-02 01:03:53 -07:00
compat.c
Kconfig
Makefile
nonet.c
socket.c net: Add explicit bound checks in net/socket.c 2009-09-28 12:57:44 -07:00
sysctl_net.c
TUNABLE