mac80211: fix bufferable MMPDU RX handling
authorJohannes Berg <johannes.berg@intel.com>
Fri, 24 Jan 2014 13:41:44 +0000 (14:41 +0100)
committerChristian Lamparter <chunkeey@googlemail.com>
Thu, 1 May 2014 19:45:09 +0000 (21:45 +0200)
commit6f0aabab49b22056cbcd1ecb7d3a723871c2de7f
tree8b1a875e2c832edc7acd80979156d7b31fe54ca3
parent254d718be2c01010e2b910f033cc0a939b230d09
mac80211: fix bufferable MMPDU RX handling

Action, disassoc and deauth frames are bufferable, and as such don't
have the PM bit in the frame control field reserved which means we
need to react to the bit when receiving in such a frame.

Fix this by introducing a new helper ieee80211_is_bufferable_mmpdu()
and using it for the RX path that currently ignores the PM bit in
any non-data frames for doze->wake transitions, but listens to it in
all frames for wake->doze transitions, both of which are wrong.

Also use the new helper in the TX path to clean up the code.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
include/linux/ieee80211.h