From: Sujith Manoharan <sujith@msujith.org>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: Emmanuel Grumbach <egrumbach@gmail.com>, "Grumbach\,
Emmanuel" <emmanuel.grumbach@intel.com>,
"linux-wireless\@vger.kernel.org"
<linux-wireless@vger.kernel.org>
Subject: Re: [PATCH] mac80211: Call mgd_prepare_tx before deauthentication
Date: Thu, 9 Oct 2014 15:52:18 +0530 [thread overview]
Message-ID: <21558.25050.964527.31471@gargle.gargle.HOWL> (raw)
In-Reply-To: <1412847604.1828.38.camel@jlt4.sipsolutions.net>
Johannes Berg wrote:
> I'm a bit conflicted about this. If we add mgd_prepare_tx() here, what's
> to say that we don't need to also do this for a variety of other frames?
> Like sending delBA action frames? I guess the difference would be that
> we don't disassoc immediately in those case.
Deauth was the main problem with ath9k, I didn't check delba or other
mgmt frames.
> However, if you consider deauth/flush while you're on a different
> context, then mgd_prepare_tx() would potentially not really be
> sufficient either. If that forces or waits for a context switch, you
> really have no guarantee that the deauth frame went out because it might
> be waiting behind other frames, and there's nothing that guarantees
> enough time in the context slice to actually send out all of them ...
It works with ath9k now because all non-data frames are sent immediately,
without being added to the internal SW queue.
> In that sense, I think you still have to implement flush.
Yes, I think we might have to. :)
> But I also think you see it wrongly - you don't have to force a context
> switch in flush, flush can essentially be "wait for queue to be empty"
> and the context switching etc. happens in the background.
flush() implementation in ath9k currently waits for the HW queues
and the SW queues assigned to the current channel context to become empty.
A context switch can be forced to expedite the process of draining
the queues in all contexts and we probably have to send out a new
NoA if a GO is active to accommodate the longer absence period
when flushing. The fact that, in ath9k, the same flush routine is called
from the main context scheduler and the mac80211 callback makes things
hairy. :)
But, I agree (and Emmanuel was right), flush() in ath9k needs
to be reworked. Please drop this patch, I'll carry it internally until
flush is fixed.
Sujith
prev parent reply other threads:[~2014-10-09 10:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-17 4:33 [PATCH] mac80211: Call mgd_prepare_tx before deauthentication Sujith Manoharan
2014-09-17 4:54 ` Sujith Manoharan
2014-09-17 5:01 ` Grumbach, Emmanuel
2014-09-17 5:44 ` Sujith Manoharan
2014-09-17 5:50 ` Grumbach, Emmanuel
2014-09-17 6:01 ` Sujith Manoharan
2014-09-17 6:04 ` Grumbach, Emmanuel
2014-09-17 6:17 ` Sujith Manoharan
2014-09-17 19:01 ` Emmanuel Grumbach
2014-09-18 3:05 ` Sujith Manoharan
2014-09-18 4:13 ` Sujith Manoharan
2014-09-18 5:08 ` Emmanuel Grumbach
2014-09-18 5:49 ` Sujith Manoharan
2014-10-09 9:40 ` Johannes Berg
2014-10-09 10:22 ` Sujith Manoharan [this message]
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=21558.25050.964527.31471@gargle.gargle.HOWL \
--to=sujith@msujith.org \
--cc=egrumbach@gmail.com \
--cc=emmanuel.grumbach@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox