linux-stable/net
Thomas Pedersen 387053b4b4 mac80211: consider QoS Null frames for STA_NULLFUNC_ACKED
[ Upstream commit 08a5bdde38 ]

Commit 7b6ddeaf27 ("mac80211: use QoS NDP for AP probing")
let STAs send QoS Null frames as PS triggers if the AP was
a QoS STA.  However, the mac80211 PS stack relies on an
interface flag IEEE80211_STA_NULLFUNC_ACKED for
determining trigger frame ACK, which was not being set for
acked non-QoS Null frames. The effect is an inability to
trigger hardware sleep via IEEE80211_CONF_PS since the QoS
Null frame was seemingly never acked.

This bug only applies to drivers which set both
IEEE80211_HW_REPORTS_TX_ACK_STATUS and
IEEE80211_HW_PS_NULLFUNC_STACK.

Detect the acked QoS Null frame to restore STA power save.

Fixes: 7b6ddeaf27 ("mac80211: use QoS NDP for AP probing")
Signed-off-by: Thomas Pedersen <thomas@adapt-ip.com>
Link: https://lore.kernel.org/r/20191119053538.25979-4-thomas@adapt-ip.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-31 12:37:49 +01:00
..
6lowpan 6lowpan: iphc: reset mac_header after decompress to fix panic 2018-10-03 17:00:47 -07:00
9p 9p/virtio: Add cleanup path in p9_virtio_init 2019-07-31 07:28:39 +02:00
802
8021q vlan: disable SIOCSHWTSTAMP in container 2019-05-16 19:42:34 +02:00
appletalk appletalk: Set error code if register_snap_client failed 2019-12-17 20:38:59 +01:00
atm net: use skb_queue_empty_lockless() in poll() handlers 2019-11-10 11:25:34 +01:00
ax25 ax25: enforce CAP_NET_RAW for raw sockets 2019-10-05 12:47:43 +02:00
batman-adv batman-adv: Only read OGM2 tvlv_len after buffer len check 2019-09-21 07:15:35 +02:00
bluetooth Bluetooth: Fix advertising duplicated flags 2019-12-31 12:37:19 +01:00
bpf
bridge net: bridge: deny dev_set_mac_address() when unregistering 2019-12-21 10:47:30 +01:00
caif net: use skb_queue_empty_lockless() in poll() handlers 2019-11-10 11:25:34 +01:00
can can: af_can: Fix error path of can_init() 2019-07-21 09:04:22 +02:00
ceph libceph: fix PG split vs OSD (re)connect race 2019-08-29 08:26:42 +02:00
core inet: protect against too small mtu values. 2019-12-21 10:47:38 +01:00
dcb net: dcb: For wild-card lookups, use priority -1, not 0 2018-09-19 22:43:43 +02:00
dccp inet: stop leaking jiffies on the wire 2019-11-10 11:25:37 +01:00
decnet decnet: fix DN_IFREQ_SIZE 2019-12-05 15:37:56 +01:00
dns_resolver KEYS: DNS: fix parsing multiple options 2018-07-22 14:28:49 +02:00
dsa net: dsa: fix switch tree list 2019-11-10 11:25:32 +01:00
ethernet
hsr net/hsr: fix possible crash in add_timer() 2019-03-19 13:13:22 +01:00
ieee802154 ieee802154: enforce CAP_NET_RAW for raw sockets 2019-10-05 12:47:44 +02:00
ife net: sched: ife: check on metadata length 2018-04-29 11:33:13 +02:00
ipv4 inet: protect against too small mtu values. 2019-12-21 10:47:38 +01:00
ipv6 ipv6: Fix handling of LLA with VRF and sockets bound to VRF 2019-12-01 09:14:14 +01:00
ipx
iucv
kcm kcm: switch order of device registration to fix a crash 2019-04-17 08:37:45 +02:00
key xfrm: clean up xfrm protocol checks 2019-09-16 08:20:44 +02:00
l2tp compat_ioctl: pppoe: fix PPPOEIOCSFWD handling 2019-08-09 17:53:35 +02:00
l3mdev
lapb lapb: fixed leak of control-blocks. 2019-06-22 08:16:14 +02:00
llc llc: avoid blocking in llc_sap_close() 2019-11-20 17:59:59 +01:00
mac80211 mac80211: consider QoS Null frames for STA_NULLFUNC_ACKED 2019-12-31 12:37:49 +01:00
mac802154 net: mac802154: tx: expand tailroom if necessary 2018-09-09 19:55:52 +02:00
mpls mpls: Return error for RTA_GATEWAY attribute 2019-03-13 14:03:09 -07:00
ncsi
netfilter netfilter: nft_compat: do not dump private area 2019-11-24 08:23:32 +01:00
netlabel netlabel: fix out-of-bounds memory accesses 2019-03-13 14:03:08 -07:00
netlink genetlink: Fix a memory leak on error path 2019-04-03 06:25:08 +02:00
netrom netrom: hold sock when setting skb->destructor 2019-07-31 07:28:46 +02:00
nfc net: nfc: nci: fix a possible sleep-in-atomic-context bug in nci_uart_tty_receive() 2019-12-31 12:36:41 +01:00
nsh nsh: set mac len based on inner packet 2018-07-22 14:28:49 +02:00
openvswitch openvswitch: support asymmetric conntrack 2019-12-21 10:47:34 +01:00
packet af_packet: set defaule value for tmo 2019-12-31 12:36:38 +01:00
phonet net: use skb_queue_empty_lockless() in poll() handlers 2019-11-10 11:25:34 +01:00
psample net: psample: fix skb_over_panic 2019-12-05 15:38:15 +01:00
qrtr net: qrtr: Stop rx_worker before freeing node 2019-10-05 12:47:40 +02:00
rds net/rds: Fix error handling in rds_ib_add_one() 2019-10-07 18:55:20 +02:00
rfkill rfkill: allocate static minor 2019-12-31 12:37:21 +01:00
rose net/rose: fix unbound loop in rose_loopback_timer() 2019-05-02 09:40:34 +02:00
rxrpc rxrpc: Fix call ref leak 2019-11-06 12:43:37 +01:00
sched net: sched: fix `tc -s class show` no bstats on class with nolock subqueues 2019-12-05 15:38:19 +01:00
sctp sctp: fully initialize v4 addr in some functions 2019-12-31 12:36:43 +01:00
smc net/smc: use after free fix in smc_wr_tx_put_slot() 2019-12-17 20:38:01 +01:00
strparser strparser: Remove early eaten to fix full tcp receive buffer stall 2018-07-22 14:28:47 +02:00
sunrpc sunrpc: fix crash when cache_head become valid before update 2019-12-17 20:40:00 +01:00
switchdev
tipc tipc: fix ordering of tipc module init and exit routine 2019-12-21 10:47:35 +01:00
tls net/tls: Fixed return value when tls_complete_pending_work() fails 2018-12-05 19:41:11 +01:00
unix net: fix warning in af_unix 2019-12-01 09:13:35 +01:00
vmw_vsock VSOCK: bind to random port for VMADDR_PORT_ANY 2019-12-05 15:37:24 +01:00
wimax
wireless cfg80211: call disconnect_wk when AP stops 2019-12-01 09:14:15 +01:00
x25 net/x25: fix null_x25_address handling 2019-12-17 20:38:25 +01:00
xfrm xfrm: release device reference for invalid state 2019-12-17 20:37:28 +01:00
Kconfig
Makefile
compat.c sock: Make sock->sk_stamp thread-safe 2019-01-09 17:14:46 +01:00
socket.c bpf: get rid of pure_initcall dependency to enable jits 2019-08-25 10:50:02 +02:00
sysctl_net.c