diff options
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_assoc.c | 14 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_auth.c | 2 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_priv.h | 2 |
3 files changed, 16 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 | } |
diff --git a/net/ieee80211/softmac/ieee80211softmac_auth.c b/net/ieee80211/softmac/ieee80211softmac_auth.c index 0612015f1c78..ec449009c3cb 100644 --- a/net/ieee80211/softmac/ieee80211softmac_auth.c +++ b/net/ieee80211/softmac/ieee80211softmac_auth.c | |||
@@ -334,6 +334,8 @@ ieee80211softmac_deauth_from_net(struct ieee80211softmac_device *mac, | |||
334 | /* can't transmit data right now... */ | 334 | /* can't transmit data right now... */ |
335 | netif_carrier_off(mac->dev); | 335 | netif_carrier_off(mac->dev); |
336 | spin_unlock_irqrestore(&mac->lock, flags); | 336 | spin_unlock_irqrestore(&mac->lock, flags); |
337 | |||
338 | ieee80211softmac_try_reassoc(mac); | ||
337 | } | 339 | } |
338 | 340 | ||
339 | /* | 341 | /* |
diff --git a/net/ieee80211/softmac/ieee80211softmac_priv.h b/net/ieee80211/softmac/ieee80211softmac_priv.h index 0642e090b8a7..3ae894f0c8f7 100644 --- a/net/ieee80211/softmac/ieee80211softmac_priv.h +++ b/net/ieee80211/softmac/ieee80211softmac_priv.h | |||
@@ -238,4 +238,6 @@ void ieee80211softmac_call_events_locked(struct ieee80211softmac_device *mac, in | |||
238 | int ieee80211softmac_notify_internal(struct ieee80211softmac_device *mac, | 238 | int ieee80211softmac_notify_internal(struct ieee80211softmac_device *mac, |
239 | int event, void *event_context, notify_function_ptr fun, void *context, gfp_t gfp_mask); | 239 | int event, void *event_context, notify_function_ptr fun, void *context, gfp_t gfp_mask); |
240 | 240 | ||
241 | void ieee80211softmac_try_reassoc(struct ieee80211softmac_device *mac); | ||
242 | |||
241 | #endif /* IEEE80211SOFTMAC_PRIV_H_ */ | 243 | #endif /* IEEE80211SOFTMAC_PRIV_H_ */ |