With NO_VIRTUAL_MONITOR, ieee80211_reconfig() adds running monitors to the driver on resume, but __ieee80211_suspend() does not remove them. Each resume without WoWLAN thus adds an interface that the driver already has. Remove these monitors on suspend, like all other interfaces that ieee80211_reconfig() adds. Fixes: 9d40f7e32774 ("wifi: mac80211: add flag to opt out of virtual monitor support") Signed-off-by: Felix Fietkau --- net/mac80211/pm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c index de0d7b093520..24989ded2830 100644 --- a/net/mac80211/pm.c +++ b/net/mac80211/pm.c @@ -154,7 +154,9 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan, continue; case NL80211_IFTYPE_MONITOR: ieee80211_link_release_channel(&sdata->deflink); - continue; + if (!ieee80211_hw_check(hw, NO_VIRTUAL_MONITOR)) + continue; + break; case NL80211_IFTYPE_STATION: ieee80211_mgd_quiesce(sdata); break; -- 2.47.3