2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-20 11:13:58 +08:00

mac80211: stop plink timer only on mesh interfaces

Since mesh_plink_quiesce() would unconditionally delete
the plink timer, and the timer initialization was recently
moved into the mesh code path, suspending with a non-mesh
interface now causes a crash. Fix this by only deleting
the plink timer for mesh interfaces.

Reported-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Tested-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Thomas Pedersen 2013-02-04 14:12:41 -08:00 committed by Johannes Berg
parent 3f52b7e328
commit aa5a1b8e68

View File

@ -592,6 +592,9 @@ static void mesh_plink_timer(unsigned long data)
#ifdef CONFIG_PM #ifdef CONFIG_PM
void mesh_plink_quiesce(struct sta_info *sta) void mesh_plink_quiesce(struct sta_info *sta)
{ {
if (!ieee80211_vif_is_mesh(&sta->sdata->vif))
return;
if (del_timer_sync(&sta->plink_timer)) if (del_timer_sync(&sta->plink_timer))
sta->plink_timer_was_running = true; sta->plink_timer_was_running = true;
} }