aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_iface.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/ieee80211_iface.c')
-rw-r--r--net/mac80211/ieee80211_iface.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/net/mac80211/ieee80211_iface.c b/net/mac80211/ieee80211_iface.c
index 98b22736e883..80954a512185 100644
--- a/net/mac80211/ieee80211_iface.c
+++ b/net/mac80211/ieee80211_iface.c
@@ -187,8 +187,8 @@ void ieee80211_if_reinit(struct net_device *dev)
187{ 187{
188 struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); 188 struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
189 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 189 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
190 struct sta_info *sta;
191 struct sk_buff *skb; 190 struct sk_buff *skb;
191 int flushed;
192 192
193 ASSERT_RTNL(); 193 ASSERT_RTNL();
194 194
@@ -240,21 +240,7 @@ void ieee80211_if_reinit(struct net_device *dev)
240 break; 240 break;
241 } 241 }
242 case IEEE80211_IF_TYPE_WDS: 242 case IEEE80211_IF_TYPE_WDS:
243 rcu_read_lock(); 243 /* nothing to do */
244 sta = sta_info_get(local, sdata->u.wds.remote_addr);
245 if (sta) {
246 sta_info_unlink(&sta);
247 } else {
248#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
249 printk(KERN_DEBUG "%s: Someone had deleted my STA "
250 "entry for the WDS link\n", dev->name);
251#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */
252 }
253 rcu_read_unlock();
254 if (sta) {
255 synchronize_rcu();
256 sta_info_destroy(sta);
257 }
258 break; 244 break;
259 case IEEE80211_IF_TYPE_MESH_POINT: 245 case IEEE80211_IF_TYPE_MESH_POINT:
260 case IEEE80211_IF_TYPE_STA: 246 case IEEE80211_IF_TYPE_STA:
@@ -279,8 +265,8 @@ void ieee80211_if_reinit(struct net_device *dev)
279 break; 265 break;
280 } 266 }
281 267
282 /* remove all STAs that are bound to this virtual interface */ 268 flushed = sta_info_flush(local, sdata);
283 sta_info_flush(local, sdata); 269 WARN_ON(flushed);
284 270
285 memset(&sdata->u, 0, sizeof(sdata->u)); 271 memset(&sdata->u, 0, sizeof(sdata->u));
286 ieee80211_if_sdata_init(sdata); 272 ieee80211_if_sdata_init(sdata);