From: "Luis R. Rodriguez" <lrodriguez@atheros.com>
To: Luis Rodriguez <Luis.Rodriguez@Atheros.com>
Cc: Sujith Manoharan <Sujith.Manoharan@Atheros.com>,
Johannes Berg <johannes@sipsolutions.net>,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: Asus eeepc 1008HA suspend issue and mac80211 suspend corner case
Date: Wed, 23 Dec 2009 11:07:04 -0800 [thread overview]
Message-ID: <20091223190704.GH2609@tux> (raw)
In-Reply-To: <20091223183351.GF2609@tux>
On Wed, Dec 23, 2009 at 10:33:51AM -0800, Luis Rodriguez wrote:
> The issues are as follows:
>
> 1) We stop TX and flush all packets out, and then call the driver stop().
> Unfortunately there is a failed assumption that even ieee80211_xmit()
> would not be called after stopping TX as __ieee80211_suspend() does
> above.
> 2) Since ieee80211_xmit() is being called even after the driver stop()
> callback it means mac80211 can potentially schedule work. Now the
> new rework on the mac80211 workqueue pushes us to WARN when either
> a driver or mac80211 tried to queue work onto the mac80211 workqueue
> and we're suspended. A new patch from Johannes futher enhances this
> to take into consideration resume so that we can allow drivers / mac80211
> to queue work if we were suspended but now resuming. Even with these
> checks in place I note that currently we do slip work through after
> the driver stop() callback is called and before loacl->suspended is
> set to true. So there seems to be a race here.
>
> The first issue is not so clear to resolve as although we likely do prevent
> the networking core from calling ieee80211_subif_start_xmit() it doesn't
> mean ieee80211_xmit() internally will not be called by other parts of
> mac80211 and indeed I do believe this is what is happening. I'll try
> pin point the exact spot where this happens though, but I'll note though
> that checking for local->suspended will *not* work since we already know
> some work is being queued *and running!* and it wouldn't have if
> local->suspended was true already.
OK, not bad and pretty obvious too -- the issue is __ieee80211_suspend()
will tear down BA sessions and this does require xmit'ing. The only issue
then becomes that of trying to queue work after a driver stop(), that can
be fixed easily and will send a patch next.
Luis
next prev parent reply other threads:[~2009-12-23 19:07 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-22 2:23 Asus eeepc 1008HA suspend issue and mac80211 suspend corner case Luis R. Rodriguez
2009-12-22 4:39 ` Sujith
2009-12-22 15:50 ` Luis R. Rodriguez
2009-12-22 16:20 ` Luis R. Rodriguez
2009-12-22 16:55 ` Luis R. Rodriguez
2009-12-22 17:59 ` Luis R. Rodriguez
2009-12-23 1:16 ` Luis R. Rodriguez
2009-12-23 2:52 ` Sujith
2009-12-23 2:54 ` Luis R. Rodriguez
2009-12-23 4:06 ` Sujith
2009-12-23 4:00 ` Luis R. Rodriguez
2009-12-23 4:54 ` Sujith
2009-12-23 18:33 ` Luis R. Rodriguez
2009-12-23 19:07 ` Luis R. Rodriguez [this message]
2009-12-23 2:29 ` Sujith
2009-12-23 2:40 ` Luis R. Rodriguez
2009-12-23 3:47 ` Sujith
2009-12-23 16:25 ` Luis R. Rodriguez
2009-12-23 2:19 ` Sujith
2009-12-23 2:39 ` Luis R. Rodriguez
2009-12-22 19:12 ` lspci CorrErr- UnsuppReq- changes (was: Asus eeepc 1008HA suspend issue and mac80211 suspend corner) case Luis R. Rodriguez
2009-12-22 19:30 ` mac80211 suspend corner case " Luis R. Rodriguez
2009-12-23 12:08 ` Johannes Berg
2009-12-23 16:28 ` Luis R. Rodriguez
2009-12-23 16:47 ` Johannes Berg
2009-12-23 19:08 ` Luis R. Rodriguez
2009-12-23 19:11 ` Johannes Berg
2009-12-23 19:19 ` Luis R. Rodriguez
2009-12-23 19:19 ` Luis R. Rodriguez
2009-12-24 12:43 ` Johannes Berg
2009-12-24 12:43 ` Johannes Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091223190704.GH2609@tux \
--to=lrodriguez@atheros.com \
--cc=Luis.Rodriguez@Atheros.com \
--cc=Sujith.Manoharan@Atheros.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.