From 12bd0f282005c57b9ec144c531390e2fa8cd1590 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 3 Nov 2016 12:13:32 +0100 Subject: mac80211: replace the previous fix with a revert of the faulty upstream commit This avoids potential breakage in rt2x00usb Signed-off-by: Felix Fietkau --- ...0211-allow-using-AP_LINK_PS-with-mac80211.patch | 28 ++++++++++++++++++++++ ...x-broken-AP-mode-handling-of-powersave-cl.patch | 27 --------------------- 2 files changed, 28 insertions(+), 27 deletions(-) create mode 100644 package/kernel/mac80211/patches/321-Revert-mac80211-allow-using-AP_LINK_PS-with-mac80211.patch delete mode 100644 package/kernel/mac80211/patches/321-mac80211-fix-broken-AP-mode-handling-of-powersave-cl.patch diff --git a/package/kernel/mac80211/patches/321-Revert-mac80211-allow-using-AP_LINK_PS-with-mac80211.patch b/package/kernel/mac80211/patches/321-Revert-mac80211-allow-using-AP_LINK_PS-with-mac80211.patch new file mode 100644 index 0000000000..ace20e706b --- /dev/null +++ b/package/kernel/mac80211/patches/321-Revert-mac80211-allow-using-AP_LINK_PS-with-mac80211.patch @@ -0,0 +1,28 @@ +From: Felix Fietkau +Date: Thu, 3 Nov 2016 12:10:34 +0100 +Subject: [PATCH] Revert "mac80211: allow using AP_LINK_PS with + mac80211-generated TIM IE" + +This reverts commit c68df2e7be0c1238ea3c281fd744a204ef3b15a0. + +__sta_info_recalc_tim turns into a no-op if local->ops->set_tim is not +set. This prevents the beacon TIM bit from being set for all drivers +that do not implement this op (almost all of them), thus thoroughly +essential AP mode powersave functionality. + +Cc: Emmanuel Grumbach +Fixes: c68df2e7be0c ("mac80211: allow using AP_LINK_PS with mac80211-generated TIM IE") +Signed-off-by: Felix Fietkau +--- + +--- a/net/mac80211/sta_info.c ++++ b/net/mac80211/sta_info.c +@@ -688,7 +688,7 @@ static void __sta_info_recalc_tim(struct + } + + /* No need to do anything if the driver does all */ +- if (!local->ops->set_tim) ++ if (ieee80211_hw_check(&local->hw, AP_LINK_PS)) + return; + + if (sta->dead) diff --git a/package/kernel/mac80211/patches/321-mac80211-fix-broken-AP-mode-handling-of-powersave-cl.patch b/package/kernel/mac80211/patches/321-mac80211-fix-broken-AP-mode-handling-of-powersave-cl.patch deleted file mode 100644 index bbf791810c..0000000000 --- a/package/kernel/mac80211/patches/321-mac80211-fix-broken-AP-mode-handling-of-powersave-cl.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Felix Fietkau -Date: Thu, 3 Nov 2016 10:47:21 +0100 -Subject: [PATCH] mac80211: fix broken AP mode handling of powersave clients - -Commit c68df2e7be0c ("mac80211: allow using AP_LINK_PS with -mac80211-generated TIM IE") introduced a logic error, where -__sta_info_recalc_tim turns into a no-op if local->ops->set_tim is not -set. This prevents the beacon TIM bit from being set for all drivers -that do not implement this op (almost all of them), thus thoroughly -essential AP mode powersave functionality. - -Cc: Emmanuel Grumbach -Fixes: c68df2e7be0c ("mac80211: allow using AP_LINK_PS with mac80211-generated TIM IE") -Signed-off-by: Felix Fietkau ---- - ---- a/net/mac80211/sta_info.c -+++ b/net/mac80211/sta_info.c -@@ -688,7 +688,7 @@ static void __sta_info_recalc_tim(struct - } - - /* No need to do anything if the driver does all */ -- if (!local->ops->set_tim) -+ if (local->ops->set_tim) - return; - - if (sta->dead) -- cgit v1.2.3