Message ID | 1360015961-5922-1-git-send-email-thomas@cozybit.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
> 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> > Signed-off-by: Thomas Pedersen <thomas@cozybit.com> > --- > > Hi Emmanuel, > > Will you please test this patch? > > net/mac80211/mesh_plink.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c > index 81e6126..1f40c4a 100644 > --- a/net/mac80211/mesh_plink.c > +++ b/net/mac80211/mesh_plink.c > @@ -528,6 +528,9 @@ static void mesh_plink_timer(unsigned long data) > #ifdef CONFIG_PM > void mesh_plink_quiesce(struct sta_info *sta) > { > + if (!ieee80211_vif_is_mesh(&sta->sdata->vif)) > + return; > + > if (del_timer_sync(&sta->plink_timer)) > sta->plink_timer_was_running = true; > } > -- > 1.7.10.4 Tested-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> --------------------------------------------------------------------- A member of the Intel Corporation group of companies This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, 2013-02-04 at 14:12 -0800, Thomas Pedersen wrote: > 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. Applied, thanks. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c index 81e6126..1f40c4a 100644 --- a/net/mac80211/mesh_plink.c +++ b/net/mac80211/mesh_plink.c @@ -528,6 +528,9 @@ static void mesh_plink_timer(unsigned long data) #ifdef CONFIG_PM void mesh_plink_quiesce(struct sta_info *sta) { + if (!ieee80211_vif_is_mesh(&sta->sdata->vif)) + return; + if (del_timer_sync(&sta->plink_timer)) sta->plink_timer_was_running = true; }
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> Signed-off-by: Thomas Pedersen <thomas@cozybit.com> --- Hi Emmanuel, Will you please test this patch? net/mac80211/mesh_plink.c | 3 +++ 1 file changed, 3 insertions(+)