diff options
Diffstat (limited to 'net/mac80211/debugfs_key.c')
| -rw-r--r-- | net/mac80211/debugfs_key.c | 15 | 
1 files changed, 12 insertions, 3 deletions
diff --git a/net/mac80211/debugfs_key.c b/net/mac80211/debugfs_key.c index 879e7210458..19efc3a6a93 100644 --- a/net/mac80211/debugfs_key.c +++ b/net/mac80211/debugfs_key.c @@ -255,14 +255,23 @@ void ieee80211_debugfs_key_remove(struct ieee80211_key *key)  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); +	/* this is running under the key lock */ + +	key = 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 +		ieee80211_debugfs_key_remove_default(sdata);  } +  void ieee80211_debugfs_key_remove_default(struct ieee80211_sub_if_data *sdata)  {  	if (!sdata)  |