diff options
Diffstat (limited to 'net/mac80211/iface.c')
-rw-r--r-- | net/mac80211/iface.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index c1cc200ac81f..95908aaa8a68 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c | |||
@@ -280,6 +280,8 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up) | |||
280 | netif_carrier_on(dev); | 280 | netif_carrier_on(dev); |
281 | } | 281 | } |
282 | 282 | ||
283 | set_bit(SDATA_STATE_RUNNING, &sdata->state); | ||
284 | |||
283 | if (sdata->vif.type == NL80211_IFTYPE_WDS) { | 285 | if (sdata->vif.type == NL80211_IFTYPE_WDS) { |
284 | /* Create STA entry for the WDS peer */ | 286 | /* Create STA entry for the WDS peer */ |
285 | sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr, | 287 | sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr, |
@@ -331,8 +333,6 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up) | |||
331 | 333 | ||
332 | netif_tx_start_all_queues(dev); | 334 | netif_tx_start_all_queues(dev); |
333 | 335 | ||
334 | set_bit(SDATA_STATE_RUNNING, &sdata->state); | ||
335 | |||
336 | return 0; | 336 | return 0; |
337 | err_del_interface: | 337 | err_del_interface: |
338 | drv_remove_interface(local, &sdata->vif); | 338 | drv_remove_interface(local, &sdata->vif); |
@@ -343,6 +343,7 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up) | |||
343 | sdata->bss = NULL; | 343 | sdata->bss = NULL; |
344 | if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) | 344 | if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) |
345 | list_del(&sdata->u.vlan.list); | 345 | list_del(&sdata->u.vlan.list); |
346 | clear_bit(SDATA_STATE_RUNNING, &sdata->state); | ||
346 | return res; | 347 | return res; |
347 | } | 348 | } |
348 | 349 | ||