mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 18:47:06 +00:00
18 lines
640 B
Diff
18 lines
640 B
Diff
|
--- a/net80211/ieee80211_beacon.c
|
||
|
+++ b/net80211/ieee80211_beacon.c
|
||
|
@@ -476,6 +476,14 @@ ieee80211_beacon_update(struct ieee80211
|
||
|
tie->tim_bitctl |= BITCTL_BUFD_MCAST;
|
||
|
else
|
||
|
tie->tim_bitctl &= ~BITCTL_BUFD_MCAST;
|
||
|
+
|
||
|
+ /* WAR: on some platforms, a race condition between beacon
|
||
|
+ * contents update and beacon transmission leads to beacon
|
||
|
+ * data not being updated in time. For most fields this is
|
||
|
+ * not critical, but for powersave it is. Work around this
|
||
|
+ * by always remapping the beacon when the TIM IE changes.
|
||
|
+ */
|
||
|
+ len_changed = 1;
|
||
|
}
|
||
|
|
||
|
/* Whenever we want to switch to a new channel, we need to follow the
|