summaryrefslogtreecommitdiff
path: root/package/kernel/mac80211/patches/321-mac80211-fix-broken-AP-mode-handling-of-powersave-cl.patch
blob: bbf791810c9edab2e6b48cf9d77e3848854de0f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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)