aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-11-30 07:29:27 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2007-11-30 07:29:27 -0500
commit75e7766680b4b196073bdc941b8a6570b9f777af (patch)
tree71ce4e83878a3dd9a83559c7d51ec549668cef3a /net/mac80211/ieee80211.c
parentb7e0fe9f81e19c4f2a1369b324c3c062c1738be4 (diff)
parent53cb4791c156908ae634de31949f7f25f8de002b (diff)
Merge branch 'fixes-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Diffstat (limited to 'net/mac80211/ieee80211.c')
-rw-r--r--net/mac80211/ieee80211.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c
index 59350b8727ec..505af1f067ab 100644
--- a/net/mac80211/ieee80211.c
+++ b/net/mac80211/ieee80211.c
@@ -216,6 +216,7 @@ static int ieee80211_open(struct net_device *dev)
216 res = local->ops->start(local_to_hw(local)); 216 res = local->ops->start(local_to_hw(local));
217 if (res) 217 if (res)
218 return res; 218 return res;
219 ieee80211_hw_config(local);
219 } 220 }
220 221
221 switch (sdata->type) { 222 switch (sdata->type) {
@@ -232,7 +233,6 @@ static int ieee80211_open(struct net_device *dev)
232 netif_tx_unlock_bh(local->mdev); 233 netif_tx_unlock_bh(local->mdev);
233 234
234 local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP; 235 local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP;
235 ieee80211_hw_config(local);
236 } 236 }
237 break; 237 break;
238 case IEEE80211_IF_TYPE_STA: 238 case IEEE80211_IF_TYPE_STA:
@@ -334,8 +334,7 @@ static int ieee80211_stop(struct net_device *dev)
334 ieee80211_configure_filter(local); 334 ieee80211_configure_filter(local);
335 netif_tx_unlock_bh(local->mdev); 335 netif_tx_unlock_bh(local->mdev);
336 336
337 local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP; 337 local->hw.conf.flags &= ~IEEE80211_CONF_RADIOTAP;
338 ieee80211_hw_config(local);
339 } 338 }
340 break; 339 break;
341 case IEEE80211_IF_TYPE_STA: 340 case IEEE80211_IF_TYPE_STA:
@@ -357,6 +356,11 @@ static int ieee80211_stop(struct net_device *dev)
357 cancel_delayed_work(&local->scan_work); 356 cancel_delayed_work(&local->scan_work);
358 } 357 }
359 flush_workqueue(local->hw.workqueue); 358 flush_workqueue(local->hw.workqueue);
359
360 sdata->u.sta.flags &= ~IEEE80211_STA_PRIVACY_INVOKED;
361 kfree(sdata->u.sta.extra_ie);
362 sdata->u.sta.extra_ie = NULL;
363 sdata->u.sta.extra_ie_len = 0;
360 /* fall through */ 364 /* fall through */
361 default: 365 default:
362 conf.if_id = dev->ifindex; 366 conf.if_id = dev->ifindex;