[source] mac80211: fix AP powersave issues introduced in the last wireless-testing update (FS#241)

LEDE Commits lede-commits at lists.infradead.org
Thu Nov 3 03:04:40 PDT 2016


nbd pushed a commit to source.git, branch master:
https://git.lede-project.org/4dfc0be07b85d62028175c1406ca585a3c5a0834

commit 4dfc0be07b85d62028175c1406ca585a3c5a0834
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Thu Nov 3 11:01:45 2016 +0100

    mac80211: fix AP powersave issues introduced in the last wireless-testing update (FS#241)
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 ...x-broken-AP-mode-handling-of-powersave-cl.patch | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

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
new file mode 100644
index 0000000..bbf7918
--- /dev/null
+++ b/package/kernel/mac80211/patches/321-mac80211-fix-broken-AP-mode-handling-of-powersave-cl.patch
@@ -0,0 +1,27 @@
+From: Felix Fietkau <nbd at 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 at intel.com>
+Fixes: c68df2e7be0c ("mac80211: allow using AP_LINK_PS with mac80211-generated TIM IE")
+Signed-off-by: Felix Fietkau <nbd at 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)



More information about the lede-commits mailing list