diff options
Diffstat (limited to 'net/wireless/core.c')
-rw-r--r-- | net/wireless/core.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c index d1f556535f6d..de1ac51ae4e5 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c | |||
@@ -450,6 +450,22 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb, | |||
450 | dev->ieee80211_ptr->netdev = dev; | 450 | dev->ieee80211_ptr->netdev = dev; |
451 | mutex_unlock(&rdev->devlist_mtx); | 451 | mutex_unlock(&rdev->devlist_mtx); |
452 | break; | 452 | break; |
453 | case NETDEV_GOING_DOWN: | ||
454 | if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_ADHOC) | ||
455 | break; | ||
456 | if (!dev->ieee80211_ptr->ssid_len) | ||
457 | break; | ||
458 | cfg80211_leave_ibss(rdev, dev); | ||
459 | break; | ||
460 | case NETDEV_UP: | ||
461 | #ifdef CONFIG_WIRELESS_EXT | ||
462 | if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_ADHOC) | ||
463 | break; | ||
464 | if (!dev->ieee80211_ptr->wext.ssid_len) | ||
465 | break; | ||
466 | cfg80211_join_ibss(rdev, dev, &dev->ieee80211_ptr->wext); | ||
467 | break; | ||
468 | #endif | ||
453 | case NETDEV_UNREGISTER: | 469 | case NETDEV_UNREGISTER: |
454 | mutex_lock(&rdev->devlist_mtx); | 470 | mutex_lock(&rdev->devlist_mtx); |
455 | if (!list_empty(&dev->ieee80211_ptr->list)) { | 471 | if (!list_empty(&dev->ieee80211_ptr->list)) { |