Commit 5eb8f4d7 authored by Johannes Berg's avatar Johannes Berg

mac80211: don't warn when stopping VLAN with stations

Stations assigned to an AP_VLAN type interface are flushed
when the interface is stopped, but then we warn about it.
Suppress the warning since there's nothing else that would
ensure those stations are already removed at this point.
Reported-by: default avatarJouni Malinen <j@w1.fi>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 388f9976
...@@ -819,13 +819,15 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata, ...@@ -819,13 +819,15 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
* (because if we remove a STA after ops->remove_interface() * (because if we remove a STA after ops->remove_interface()
* the driver will have removed the vif info already!) * the driver will have removed the vif info already!)
* *
* This is relevant only in WDS mode, in all other modes we've * In WDS mode a station must exist here and be flushed, for
* already removed all stations when disconnecting or similar, * AP_VLANs stations may exist since there's nothing else that
* so warn otherwise. * would have removed them, but in other modes there shouldn't
* be any stations.
*/ */
flushed = sta_info_flush(sdata); flushed = sta_info_flush(sdata);
WARN_ON_ONCE((sdata->vif.type != NL80211_IFTYPE_WDS && flushed > 0) || WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
(sdata->vif.type == NL80211_IFTYPE_WDS && flushed != 1)); ((sdata->vif.type != NL80211_IFTYPE_WDS && flushed > 0) ||
(sdata->vif.type == NL80211_IFTYPE_WDS && flushed != 1)));
/* don't count this interface for promisc/allmulti while it is down */ /* don't count this interface for promisc/allmulti while it is down */
if (sdata->flags & IEEE80211_SDATA_ALLMULTI) if (sdata->flags & IEEE80211_SDATA_ALLMULTI)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment