[3.16.y-ckt stable] Patch "mac80211: schedule the actual switch of the station before CSA count 0" has been added to staging queue

Luis Henriques luis.henriques at canonical.com
Mon Nov 24 15:04:47 UTC 2014


This is a note to let you know that I have just added a patch titled

    mac80211: schedule the actual switch of the station before CSA count 0

to the linux-3.16.y-queue branch of the 3.16.y-ckt extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.16.y-queue

This patch is scheduled to be released in version 3.16.7-ckt2.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.16.y-ckt tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Luis

------

>From 074c0bf00d6439f67f1150be2ab889b66ac52040 Mon Sep 17 00:00:00 2001
From: Luciano Coelho <luciano.coelho at intel.com>
Date: Tue, 28 Oct 2014 13:33:05 +0200
Subject: mac80211: schedule the actual switch of the station before CSA count
 0

commit ff1e417c7c239b7abfe70aa90460a77eaafc7f83 upstream.

Due to the time it takes to process the beacon that started the CSA
process, we may be late for the switch if we try to reach exactly
beacon 0.  To avoid that, use count - 1 when calculating the switch time.

Reported-by: Jouni Malinen <j at w1.fi>
Signed-off-by: Luciano Coelho <luciano.coelho at intel.com>
Signed-off-by: Johannes Berg <johannes.berg at intel.com>
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
---
 net/mac80211/mlme.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index a374bcc32706..a59a78b6923d 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1136,7 +1136,8 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
 		ieee80211_queue_work(&local->hw, &ifmgd->chswitch_work);
 	else
 		mod_timer(&ifmgd->chswitch_timer,
-			  TU_TO_EXP_TIME(csa_ie.count * cbss->beacon_interval));
+			  TU_TO_EXP_TIME((csa_ie.count - 1) *
+					 cbss->beacon_interval));
 }

 static u32 ieee80211_handle_pwr_constr(struct ieee80211_sub_if_data *sdata,
--
2.1.0





More information about the kernel-team mailing list