diff options
Diffstat (limited to 'net/mac80211/ieee80211_iface.c')
-rw-r--r-- | net/mac80211/ieee80211_iface.c | 22 |
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); |