mac80211: replace the previous fix with a revert of the faulty upstream commit
authorFelix Fietkau <nbd@nbd.name>
Thu, 3 Nov 2016 11:13:32 +0000 (12:13 +0100)
committerFelix Fietkau <nbd@nbd.name>
Thu, 3 Nov 2016 11:13:50 +0000 (12:13 +0100)
This avoids potential breakage in rt2x00usb

Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/kernel/mac80211/patches/321-Revert-mac80211-allow-using-AP_LINK_PS-with-mac80211.patch [new file with mode: 0644]
package/kernel/mac80211/patches/321-mac80211-fix-broken-AP-mode-handling-of-powersave-cl.patch [deleted file]

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 (file)
index 0000000..ace20e7
--- /dev/null
@@ -0,0 +1,28 @@
+From: Felix Fietkau <nbd@nbd.name>
+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 <emmanuel.grumbach@intel.com>
+Fixes: c68df2e7be0c ("mac80211: allow using AP_LINK_PS with mac80211-generated TIM IE")
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- 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 (file)
index bbf7918..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-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 <emmanuel.grumbach@intel.com>
-Fixes: c68df2e7be0c ("mac80211: allow using AP_LINK_PS with mac80211-generated TIM IE")
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- 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)