From: Felix Fietkau Date: Sat, 17 Jul 2010 13:59:07 +0000 (+0200) Subject: mac80211: fix aggregation action frame handling with AP VLANs X-Git-Tag: v2.6.36-rc1~571^2~107^2~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=875ae5f68883c75aad826e715df8ec0619551a07;p=profile%2Fcommon%2Fkernel-common.git mac80211: fix aggregation action frame handling with AP VLANs When aggregation related action frames are enqueued for further work, and they originate from a STA that is part of an AP VLAN, they are currently enqueued for the AP interface. This breaks the sta_info_get() lookup in the actual work function, and because of that, aggregation sessions are not established for this STA. Fix this by replacing the sta_info_get call with a call to sta_info_get_bss. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville --- diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 910729f..8ef2fde 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -741,7 +741,7 @@ static void ieee80211_iface_work(struct work_struct *work) int len = skb->len; mutex_lock(&local->sta_mtx); - sta = sta_info_get(sdata, mgmt->sa); + sta = sta_info_get_bss(sdata, mgmt->sa); if (sta) { switch (mgmt->u.action.u.addba_req.action_code) { case WLAN_ACTION_ADDBA_REQ: @@ -782,7 +782,7 @@ static void ieee80211_iface_work(struct work_struct *work) * right, so terminate the session. */ mutex_lock(&local->sta_mtx); - sta = sta_info_get(sdata, mgmt->sa); + sta = sta_info_get_bss(sdata, mgmt->sa); if (sta) { u16 tid = *ieee80211_get_qos_ctl(hdr) & IEEE80211_QOS_CTL_TID_MASK;