diff options
Diffstat (limited to 'net/mac80211/cfg.c')
| -rw-r--r-- | net/mac80211/cfg.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index fb306814576..a6893602f87 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -2582,7 +2582,7 @@ static int ieee80211_cancel_roc(struct ieee80211_local *local,  			list_del(&dep->list);  			mutex_unlock(&local->mtx); -			ieee80211_roc_notify_destroy(dep); +			ieee80211_roc_notify_destroy(dep, true);  			return 0;  		} @@ -2622,7 +2622,7 @@ static int ieee80211_cancel_roc(struct ieee80211_local *local,  			ieee80211_start_next_roc(local);  		mutex_unlock(&local->mtx); -		ieee80211_roc_notify_destroy(found); +		ieee80211_roc_notify_destroy(found, true);  	} else {  		/* work may be pending so use it all the time */  		found->abort = true; @@ -2632,6 +2632,8 @@ static int ieee80211_cancel_roc(struct ieee80211_local *local,  		/* work will clean up etc */  		flush_delayed_work(&found->work); +		WARN_ON(!found->to_be_freed); +		kfree(found);  	}  	return 0;  |