diff options
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 cf51c87a971d..614aa8d32985 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 | } |