]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ieee80211/ieee80211_module.c
lib80211: consolidate crypt init routines
[linux-2.6-omap-h63xx.git] / net / ieee80211 / ieee80211_module.c
index 949772a5a7dc15bd35152c3ada3df912681acfd7..a2f5616d5b095a2f80bea548871fbac24f05f751 100644 (file)
@@ -180,13 +180,10 @@ struct net_device *alloc_ieee80211(int sizeof_priv)
        ieee->host_open_frag = 1;
        ieee->ieee802_1x = 1;   /* Default to supporting 802.1x */
 
-       INIT_LIST_HEAD(&ieee->crypt_deinit_list);
-       setup_timer(&ieee->crypt_deinit_timer, ieee80211_crypt_deinit_handler,
-                       (unsigned long)ieee);
-       ieee->crypt_quiesced = 0;
-
        spin_lock_init(&ieee->lock);
 
+       lib80211_crypt_info_init(&ieee->crypt_info, dev->name, &ieee->lock);
+
        ieee->wpa_enabled = 0;
        ieee->drop_unencrypted = 0;
        ieee->privacy_invoked = 0;
@@ -203,23 +200,7 @@ void free_ieee80211(struct net_device *dev)
 {
        struct ieee80211_device *ieee = netdev_priv(dev);
 
-       int i;
-
-       ieee80211_crypt_quiescing(ieee);
-       del_timer_sync(&ieee->crypt_deinit_timer);
-       ieee80211_crypt_deinit_entries(ieee, 1);
-
-       for (i = 0; i < WEP_KEYS; i++) {
-               struct ieee80211_crypt_data *crypt = ieee->crypt[i];
-               if (crypt) {
-                       if (crypt->ops) {
-                               crypt->ops->deinit(crypt->priv);
-                               module_put(crypt->ops->owner);
-                       }
-                       kfree(crypt);
-                       ieee->crypt[i] = NULL;
-               }
-       }
+       lib80211_crypt_info_free(&ieee->crypt_info);
 
        ieee80211_networks_free(ieee);
        free_netdev(dev);
@@ -308,31 +289,5 @@ MODULE_PARM_DESC(debug, "debug output mask");
 module_exit(ieee80211_exit);
 module_init(ieee80211_init);
 
-const char *escape_essid(const char *essid, u8 essid_len)
-{
-       static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
-       const char *s = essid;
-       char *d = escaped;
-
-       if (ieee80211_is_empty_essid(essid, essid_len)) {
-               memcpy(escaped, "<hidden>", sizeof("<hidden>"));
-               return escaped;
-       }
-
-       essid_len = min(essid_len, (u8) IW_ESSID_MAX_SIZE);
-       while (essid_len--) {
-               if (*s == '\0') {
-                       *d++ = '\\';
-                       *d++ = '0';
-                       s++;
-               } else {
-                       *d++ = *s++;
-               }
-       }
-       *d = '\0';
-       return escaped;
-}
-
 EXPORT_SYMBOL(alloc_ieee80211);
 EXPORT_SYMBOL(free_ieee80211);
-EXPORT_SYMBOL(escape_essid);