mac80211: check fast-xmit on station change
authorMichal Kazior <michal.kazior@tieto.com>
Tue, 19 May 2015 12:13:36 +0000 (14:13 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 20 May 2015 13:08:36 +0000 (15:08 +0200)
Drivers with fast-xmit (e.g. ath10k) running in
AP_VLAN setups would fail to communicate with
connected 4addr stations.

The reason was when new station associates it
first goes into master AP interface. It is not
until later that a dedicated AP_VLAN is created
for it and the station itself is moved there.
After that Tx directed at the station should use
4addr header. However fast-xmit wasn't
recalculated and 3addr header remained to be used.
This in turn caused the connected 4addr stations
to drop packets coming from the AP until some
other event would cause fast-xmit to recalculate
for that station (which could never come).

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/cfg.c

index 3469bbdc891c35afe10017fe4d9450c29955a1f0..bb9f83640b46526741026ada9191f868ecfce8fa 100644 (file)
@@ -1411,6 +1411,7 @@ static int ieee80211_change_station(struct wiphy *wiphy,
                }
 
                sta->sdata = vlansdata;
+               ieee80211_check_fast_xmit(sta);
 
                if (sta->sta_state == IEEE80211_STA_AUTHORIZED &&
                    prev_4addr != new_4addr) {