aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2010-02-03 14:33:44 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2010-03-15 12:06:39 -0400
commit70702844e7be631ea810e752c2f089792b3364bc (patch)
treef7f538cc37e18a8a3c62cc7c41f7da5b3895a60e /drivers/net
parent5c61625f566640743886f324e1fda0eef5b04e1d (diff)
b43/b43legacy: Wake queues in wireless_core_start
commit 0866b03c7d7dee8a34ffa527ecda426c0f405518 upstream. If b43 or b43legacy are deauthenticated or disconnected, there is a possibility that a reconnection is tried with the queues stopped in mac80211. To prevent this, start the queues before setting STAT_INITIALIZED. In b43, a similar change has been in place (twice) in the wireless_core_init() routine. Remove the duplicate and add similar code to b43legacy. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/b43/main.c3
-rw-r--r--drivers/net/wireless/b43legacy/main.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 490fb45d1d05..b59166c67626 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -3970,6 +3970,7 @@ static int b43_wireless_core_start(struct b43_wldev *dev)
3970 } 3970 }
3971 3971
3972 /* We are ready to run. */ 3972 /* We are ready to run. */
3973 ieee80211_wake_queues(dev->wl->hw);
3973 b43_set_status(dev, B43_STAT_STARTED); 3974 b43_set_status(dev, B43_STAT_STARTED);
3974 3975
3975 /* Start data flow (TX/RX). */ 3976 /* Start data flow (TX/RX). */
@@ -4379,8 +4380,6 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
4379 4380
4380 ieee80211_wake_queues(dev->wl->hw); 4381 ieee80211_wake_queues(dev->wl->hw);
4381 4382
4382 ieee80211_wake_queues(dev->wl->hw);
4383
4384 b43_set_status(dev, B43_STAT_INITIALIZED); 4383 b43_set_status(dev, B43_STAT_INITIALIZED);
4385 4384
4386out: 4385out:
diff --git a/drivers/net/wireless/b43legacy/main.c b/drivers/net/wireless/b43legacy/main.c
index 4a905b6a886b..6d21b49e8d1f 100644
--- a/drivers/net/wireless/b43legacy/main.c
+++ b/drivers/net/wireless/b43legacy/main.c
@@ -2921,6 +2921,7 @@ static int b43legacy_wireless_core_start(struct b43legacy_wldev *dev)
2921 goto out; 2921 goto out;
2922 } 2922 }
2923 /* We are ready to run. */ 2923 /* We are ready to run. */
2924 ieee80211_wake_queues(dev->wl->hw);
2924 b43legacy_set_status(dev, B43legacy_STAT_STARTED); 2925 b43legacy_set_status(dev, B43legacy_STAT_STARTED);
2925 2926
2926 /* Start data flow (TX/RX) */ 2927 /* Start data flow (TX/RX) */
@@ -3341,6 +3342,7 @@ static int b43legacy_wireless_core_init(struct b43legacy_wldev *dev)
3341 b43legacy_security_init(dev); 3342 b43legacy_security_init(dev);
3342 b43legacy_rng_init(wl); 3343 b43legacy_rng_init(wl);
3343 3344
3345 ieee80211_wake_queues(dev->wl->hw);
3344 b43legacy_set_status(dev, B43legacy_STAT_INITIALIZED); 3346 b43legacy_set_status(dev, B43legacy_STAT_INITIALIZED);
3345 3347
3346 b43legacy_leds_init(dev); 3348 b43legacy_leds_init(dev);