mt76: toggle driver station powersave bit before notifying mac80211
authorFelix Fietkau <nbd@nbd.name>
Tue, 3 Apr 2018 19:52:50 +0000 (21:52 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 24 Apr 2018 17:29:57 +0000 (20:29 +0300)
Avoids race conditions from mac80211 enqueueing tx packets before the
tx-drop bit is cleared

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/mediatek/mt76/mac80211.c

index ec531ce..eb49e0a 100644 (file)
@@ -547,8 +547,8 @@ mt76_check_ps(struct mt76_dev *dev, struct sk_buff *skb)
        else
                clear_bit(MT_WCID_FLAG_PS, &wcid->flags);
 
-       ieee80211_sta_ps_transition(sta, ps);
        dev->drv->sta_ps(dev, sta, ps);
+       ieee80211_sta_ps_transition(sta, ps);
 }
 
 void mt76_rx_complete(struct mt76_dev *dev, struct sk_buff_head *frames,