diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-07-25 16:20:23 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-08-26 11:12:44 +0200 |
commit | 3918edb0e6a8b16c2866f4657d9fed41f9da562d (patch) | |
tree | 1754c9b32a2cf028b569a434e76dcf4c3ad6421f | |
parent | 0e67c13667a72093aa3ef3cb54dd521e34e500fc (diff) | |
download | op-kernel-dev-3918edb0e6a8b16c2866f4657d9fed41f9da562d.zip op-kernel-dev-3918edb0e6a8b16c2866f4657d9fed41f9da562d.tar.gz |
mac80211: fix smps mode check for AP_VLAN
In ieee80211_sta_ps_deliver_wakeup, sdata->smps_mode is checked. This is
initialized only for the base AP interface, not the individual VLANs.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | net/mac80211/sta_info.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c index c6ee213..441875f 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c @@ -1094,8 +1094,11 @@ void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta) unsigned long flags; struct ps_data *ps; - if (sdata->vif.type == NL80211_IFTYPE_AP || - sdata->vif.type == NL80211_IFTYPE_AP_VLAN) + if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) + sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, + u.ap); + + if (sdata->vif.type == NL80211_IFTYPE_AP) ps = &sdata->bss->ps; else if (ieee80211_vif_is_mesh(&sdata->vif)) ps = &sdata->u.mesh.ps; |