> > the interface goes up well, but I get an oops as soon as I run hostapd, > > seems something with debugfs. This shows up in dmesg, let me know if you > > need any more info. Bas, can you reproduce this issue? Could you try the patch below? johannes --- net/mac80211/debugfs_key.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) --- everything.orig/net/mac80211/debugfs_key.c 2008-04-28 20:15:42.000000000 +0200 +++ everything/net/mac80211/debugfs_key.c 2008-04-28 20:15:44.000000000 +0200 @@ -255,14 +255,29 @@ void ieee80211_debugfs_key_remove(struct void ieee80211_debugfs_key_add_default(struct ieee80211_sub_if_data *sdata) { char buf[50]; + struct ieee80211_key *key; if (!sdata->debugfsdir) return; - sprintf(buf, "../keys/%d", sdata->default_key->debugfs.cnt); - sdata->debugfs.default_key = - debugfs_create_symlink("default_key", sdata->debugfsdir, buf); + rcu_read_lock(); + key = rcu_dereference(sdata->default_key); + if (key) { + sprintf(buf, "../keys/%d", key->debugfs.cnt); + sdata->debugfs.default_key = + debugfs_create_symlink("default_key", + sdata->debugfsdir, buf); + } else { + /* + * Oops. No default key, let's remove the debugfs entry + * This can happen if the workqueue is too slow. + */ + debugfs_remove(sdata->debugfs.default_key); + sdata->debugfs.default_key = NULL; + } + rcu_read_unlock(); } + void ieee80211_debugfs_key_remove_default(struct ieee80211_sub_if_data *sdata) { if (!sdata) -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html