From: Jouni Malinen <j@w1.fi>
To: linux-wireless@vger.kernel.org
Subject: [RFC] mac80211: Reorder debugfs calls during netdev deinit
Date: Thu, 28 Aug 2008 16:56:51 +0300 [thread overview]
Message-ID: <20080828135651.GE4863@jm.kir.nu> (raw)
There was some discussion about the order in which debugfs entries are
removed in context of IEEE 802.11w implementation couple of months ago.
The problem that I was seeing ended up leaving the netdev:mon.wlan0
directory in debugfs behind when the monitor interface was removed. This
happened because mac80211 tried to remove the netdev directory before
making sure that all files were removed from the directory. This did not
show up before, but with IEEE 802.11w implementation, the
netdev:mon.wlan0 directory may actually contain a key symlink and that
prevented the directory from being removed.
It looks like someone has cleaned up the netdev uninit sequence (which
was quite a mess at the time I looked at it last and ended up just
delaying the fix till now..) and that seems to make it trivial to fix
the deinit order issue. The key part in fixing this is to make sure that
the possible key symlinks are removed before the netdev directory and
this is now easy to do by just changing the order of the function calls
in ieee80211_teardown_sdata(). I did not find any reason why they would
need to be in the other order, so this looks like a safe change. Did I
miss something there or would the following change be acceptable way of
fixing the issue? I did not notice any problems in my tests and this
allows the debugfs directories to be removed properly with my IEEE
802.11w patches applied.
ieee80211_free_keys() must be called before
ieee80211_debugfs_remove_netdev() in order to make sure that the
possible default_key symlink is removed before the netdev debugfs
directory is removed.
This fixes an issue where a monitor interface may be left behind when
being removed if there is a key symlink in it. This does not happen
with the current mac80211 code, but could happen in future after IEEE
802.11w (management frame protection) is added with its additional
default_mgmt_key symlink.
Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Index: wireless-testing/net/mac80211/iface.c
===================================================================
--- wireless-testing.orig/net/mac80211/iface.c
+++ wireless-testing/net/mac80211/iface.c
@@ -31,11 +31,11 @@ static void ieee80211_teardown_sdata(str
int flushed;
int i;
- ieee80211_debugfs_remove_netdev(sdata);
-
/* free extra data */
ieee80211_free_keys(sdata);
+ ieee80211_debugfs_remove_netdev(sdata);
+
for (i = 0; i < IEEE80211_FRAGMENT_MAX; i++)
__skb_queue_purge(&sdata->fragments[i].skb_list);
sdata->fragment_next = 0;
--
Jouni Malinen PGP id EFC895FA
next reply other threads:[~2008-08-28 13:57 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-28 13:56 Jouni Malinen [this message]
2008-08-28 14:28 ` [RFC] mac80211: Reorder debugfs calls during netdev deinit Johannes Berg
2008-08-28 14:55 ` Jouni Malinen
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=20080828135651.GE4863@jm.kir.nu \
--to=j@w1.fi \
--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