diff mbox

mac80211: do not queue work after suspend in the dynamic ps timer

Message ID 1248482853-17032-3-git-send-email-lrodriguez@atheros.com (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Luis Rodriguez July 25, 2009, 12:47 a.m. UTC
This fixes this warning during suspend <--> resume:

WARNING: at net/mac80211/util.c:511 ieee80211_queue_work+0x3a/0x40 [mac80211]()
Hardware name: 6460DWU
queueing ieee80211 work while going to suspend
Modules linked in: <--snip-->
Pid: 0, comm: swapper Not tainted 2.6.31-rc3-wl #4
Call Trace:
 <IRQ>  [<ffffffffa0139d0a>] ? ieee80211_queue_work+0x3a/0x40 [mac80211]
 [<ffffffff810552b8>] warn_slowpath_common+0x78/0xd0
 [<ffffffffa012a580>] ? ieee80211_dynamic_ps_timer+0x0/0x30 [mac80211]
 [<ffffffff81055394>] warn_slowpath_fmt+0x64/0x70
 [<ffffffff810188a9>] ? sched_clock+0x9/0x10
 [<ffffffff8107800c>] ? getnstimeofday+0x5c/0xf0
 [<ffffffff810188a9>] ? sched_clock+0x9/0x10
 [<ffffffff81074625>] ? sched_clock_cpu+0x75/0x240
 [<ffffffffa0139d0a>] ieee80211_queue_work+0x3a/0x40 [mac80211]
 [<ffffffffa012a59c>] ieee80211_dynamic_ps_timer+0x1c/0x30 [mac80211]
 ... etc

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
---
 net/mac80211/mlme.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Luis Rodriguez July 27, 2009, 3:37 p.m. UTC | #1
On Fri, Jul 24, 2009 at 5:47 PM, Luis R.
Rodriguez<lrodriguez@atheros.com> wrote:
> This fixes this warning during suspend <--> resume:
>
> WARNING: at net/mac80211/util.c:511 ieee80211_queue_work+0x3a/0x40 [mac80211]()

Please ignore, I'll be sending this without depending on the other
patches, separately.

  Luis
--
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 mbox

Patch

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index a9d717e..98df70d 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -760,7 +760,7 @@  void ieee80211_dynamic_ps_timer(unsigned long data)
 {
 	struct ieee80211_local *local = (void *) data;
 
-	if (local->quiescing)
+	if (local->quiescing || local->suspended)
 		return;
 
 	ieee80211_queue_work(&local->hw, &local->dynamic_ps_enable_work);