cfg80211: rework key operation
[safe/jmp/linux-2.6] / net / wireless / core.c
index 1a78b3c..97cc596 100644 (file)
@@ -666,14 +666,10 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb,
                wdev_lock(wdev);
                switch (wdev->iftype) {
                case NL80211_IFTYPE_ADHOC:
-                       if (wdev->wext.ibss.ssid_len)
-                               __cfg80211_join_ibss(rdev, dev,
-                                                    &wdev->wext.ibss);
+                       cfg80211_ibss_wext_join(rdev, wdev);
                        break;
                case NL80211_IFTYPE_STATION:
-                       if (wdev->wext.connect.ssid_len)
-                               __cfg80211_connect(rdev, dev,
-                                                  &wdev->wext.connect);
+                       cfg80211_mgd_wext_connect(rdev, wdev);
                        break;
                default:
                        break;
@@ -690,6 +686,9 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb,
                }
                mutex_unlock(&rdev->devlist_mtx);
                mutex_destroy(&wdev->mtx);
+#ifdef CONFIG_WIRELESS_EXT
+               kfree(wdev->wext.keys);
+#endif
                break;
        case NETDEV_PRE_UP:
                if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)))