diff options
author | Ulrich Kunitz <kune@deine-taler.de> | 2006-12-03 10:32:00 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-12-05 19:31:33 -0500 |
commit | 2b50c24554d31c2db2f93b1151b5991e62f96594 (patch) | |
tree | 82e45711b6da33aa390981e2336c1d13a1b72241 /net/ieee80211/softmac/ieee80211softmac_assoc.c | |
parent | e6e3f12ad713fb878baa8e8b5456874a7ac714d3 (diff) |
[PATCH] softmac: Fixed handling of deassociation from AP
In 2.6.19 a deauthentication from the AP doesn't start a
reassociation by the softmac code. It appears that
mac->associnfo.associating must be set and the
ieee80211softmac_assoc_work function must be scheduled. This patch
fixes that.
Signed-off-by: Ulrich Kunitz <kune@deine-taler.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/ieee80211/softmac/ieee80211softmac_assoc.c')
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_assoc.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_assoc.c b/net/ieee80211/softmac/ieee80211softmac_assoc.c index cf51c87a971..614aa8d3298 100644 --- a/net/ieee80211/softmac/ieee80211softmac_assoc.c +++ b/net/ieee80211/softmac/ieee80211softmac_assoc.c | |||
@@ -427,6 +427,17 @@ ieee80211softmac_handle_assoc_response(struct net_device * dev, | |||
427 | return 0; | 427 | return 0; |
428 | } | 428 | } |
429 | 429 | ||
430 | void | ||
431 | ieee80211softmac_try_reassoc(struct ieee80211softmac_device *mac) | ||
432 | { | ||
433 | unsigned long flags; | ||
434 | |||
435 | spin_lock_irqsave(&mac->lock, flags); | ||
436 | mac->associnfo.associating = 1; | ||
437 | schedule_work(&mac->associnfo.work); | ||
438 | spin_unlock_irqrestore(&mac->lock, flags); | ||
439 | } | ||
440 | |||
430 | int | 441 | int |
431 | ieee80211softmac_handle_disassoc(struct net_device * dev, | 442 | ieee80211softmac_handle_disassoc(struct net_device * dev, |
432 | struct ieee80211_disassoc *disassoc) | 443 | struct ieee80211_disassoc *disassoc) |
@@ -445,8 +456,7 @@ ieee80211softmac_handle_disassoc(struct net_device * dev, | |||
445 | dprintk(KERN_INFO PFX "got disassoc frame\n"); | 456 | dprintk(KERN_INFO PFX "got disassoc frame\n"); |
446 | ieee80211softmac_disassoc(mac); | 457 | ieee80211softmac_disassoc(mac); |
447 | 458 | ||
448 | /* try to reassociate */ | 459 | ieee80211softmac_try_reassoc(mac); |
449 | schedule_work(&mac->associnfo.work); | ||
450 | 460 | ||
451 | return 0; | 461 | return 0; |
452 | } | 462 | } |