Commit b0a4e7d8 authored by John W. Linville's avatar John W. Linville

libipw: switch from ieee80211_* to libipw_* naming policy

This eliminates the dual definition of ieee80211_channel (and possibly
others), further clarifying who defines what and paving the way for
inclusion of cfg80211.h.
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 01a0ac41
This diff is collapsed.
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include <linux/mutex.h> #include <linux/mutex.h>
#include "ieee80211.h" #include "libipw.h"
struct ipw2100_priv; struct ipw2100_priv;
struct ipw2100_tx_packet; struct ipw2100_tx_packet;
...@@ -343,7 +343,7 @@ struct ipw2100_tx_packet { ...@@ -343,7 +343,7 @@ struct ipw2100_tx_packet {
struct { /* DATA */ struct { /* DATA */
struct ipw2100_data_header *data; struct ipw2100_data_header *data;
dma_addr_t data_phys; dma_addr_t data_phys;
struct ieee80211_txb *txb; struct libipw_txb *txb;
} d_struct; } d_struct;
} info; } info;
int jiffy_start; int jiffy_start;
...@@ -492,7 +492,7 @@ struct ipw2100_priv { ...@@ -492,7 +492,7 @@ struct ipw2100_priv {
int stop_hang_check; /* Set 1 when shutting down to kill hang_check */ int stop_hang_check; /* Set 1 when shutting down to kill hang_check */
int stop_rf_kill; /* Set 1 when shutting down to kill rf_kill */ int stop_rf_kill; /* Set 1 when shutting down to kill rf_kill */
struct ieee80211_device *ieee; struct libipw_device *ieee;
unsigned long status; unsigned long status;
unsigned long config; unsigned long config;
unsigned long capability; unsigned long capability;
...@@ -788,7 +788,7 @@ struct ipw2100_priv { ...@@ -788,7 +788,7 @@ struct ipw2100_priv {
#define IPW_CARD_DISABLE_PHY_OFF_COMPLETE_WAIT 100 // 100 milli #define IPW_CARD_DISABLE_PHY_OFF_COMPLETE_WAIT 100 // 100 milli
#define IPW_PREPARE_POWER_DOWN_COMPLETE_WAIT 100 // 100 milli #define IPW_PREPARE_POWER_DOWN_COMPLETE_WAIT 100 // 100 milli
#define IPW_HEADER_802_11_SIZE sizeof(struct ieee80211_hdr_3addr) #define IPW_HEADER_802_11_SIZE sizeof(struct libipw_hdr_3addr)
#define IPW_MAX_80211_PAYLOAD_SIZE 2304U #define IPW_MAX_80211_PAYLOAD_SIZE 2304U
#define IPW_MAX_802_11_PAYLOAD_LENGTH 2312 #define IPW_MAX_802_11_PAYLOAD_LENGTH 2312
#define IPW_MAX_ACCEPTABLE_TX_FRAME_LENGTH 1536 #define IPW_MAX_ACCEPTABLE_TX_FRAME_LENGTH 1536
...@@ -803,13 +803,13 @@ struct ipw2100_priv { ...@@ -803,13 +803,13 @@ struct ipw2100_priv {
IPW_802_11_FCS_LENGTH) IPW_802_11_FCS_LENGTH)
#define IPW_802_11_PAYLOAD_OFFSET \ #define IPW_802_11_PAYLOAD_OFFSET \
(sizeof(struct ieee80211_hdr_3addr) + \ (sizeof(struct libipw_hdr_3addr) + \
sizeof(struct ieee80211_snap_hdr)) sizeof(struct libipw_snap_hdr))
struct ipw2100_rx { struct ipw2100_rx {
union { union {
unsigned char payload[IPW_RX_NIC_BUFFER_LENGTH]; unsigned char payload[IPW_RX_NIC_BUFFER_LENGTH];
struct ieee80211_hdr_4addr header; struct libipw_hdr_4addr header;
u32 status; u32 status;
struct ipw2100_notification notification; struct ipw2100_notification notification;
struct ipw2100_cmd_header command; struct ipw2100_cmd_header command;
......
This diff is collapsed.
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include "ieee80211.h" #include "libipw.h"
/* Authentication and Association States */ /* Authentication and Association States */
enum connection_manager_assoc_states { enum connection_manager_assoc_states {
...@@ -365,8 +365,8 @@ enum connection_manager_assoc_states { ...@@ -365,8 +365,8 @@ enum connection_manager_assoc_states {
/* QoS sturctures */ /* QoS sturctures */
struct ipw_qos_info { struct ipw_qos_info {
int qos_enable; int qos_enable;
struct ieee80211_qos_parameters *def_qos_parm_OFDM; struct libipw_qos_parameters *def_qos_parm_OFDM;
struct ieee80211_qos_parameters *def_qos_parm_CCK; struct libipw_qos_parameters *def_qos_parm_CCK;
u32 burst_duration_CCK; u32 burst_duration_CCK;
u32 burst_duration_OFDM; u32 burst_duration_OFDM;
u16 qos_no_ack_mask; u16 qos_no_ack_mask;
...@@ -534,7 +534,7 @@ typedef void destructor_func(const void *); ...@@ -534,7 +534,7 @@ typedef void destructor_func(const void *);
struct clx2_tx_queue { struct clx2_tx_queue {
struct clx2_queue q; struct clx2_queue q;
struct tfd_frame *bd; struct tfd_frame *bd;
struct ieee80211_txb **txb; struct libipw_txb **txb;
}; };
/* /*
...@@ -1144,7 +1144,7 @@ enum ipw_prom_filter { ...@@ -1144,7 +1144,7 @@ enum ipw_prom_filter {
struct ipw_priv; struct ipw_priv;
struct ipw_prom_priv { struct ipw_prom_priv {
struct ipw_priv *priv; struct ipw_priv *priv;
struct ieee80211_device *ieee; struct libipw_device *ieee;
enum ipw_prom_filter filter; enum ipw_prom_filter filter;
int tx_packets; int tx_packets;
int rx_packets; int rx_packets;
...@@ -1175,7 +1175,7 @@ struct ipw_rt_hdr { ...@@ -1175,7 +1175,7 @@ struct ipw_rt_hdr {
struct ipw_priv { struct ipw_priv {
/* ieee device used by generic ieee processing code */ /* ieee device used by generic ieee processing code */
struct ieee80211_device *ieee; struct libipw_device *ieee;
spinlock_t lock; spinlock_t lock;
spinlock_t irq_lock; spinlock_t irq_lock;
...@@ -1222,7 +1222,7 @@ struct ipw_priv { ...@@ -1222,7 +1222,7 @@ struct ipw_priv {
u32 roaming_threshold; u32 roaming_threshold;
struct ipw_associate assoc_request; struct ipw_associate assoc_request;
struct ieee80211_network *assoc_network; struct libipw_network *assoc_network;
unsigned long ts_scan_abort; unsigned long ts_scan_abort;
struct ipw_supported_rates rates; struct ipw_supported_rates rates;
......
...@@ -41,9 +41,9 @@ ...@@ -41,9 +41,9 @@
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include "ieee80211.h" #include "libipw.h"
int ieee80211_is_valid_channel(struct ieee80211_device *ieee, u8 channel) int libipw_is_valid_channel(struct libipw_device *ieee, u8 channel)
{ {
int i; int i;
...@@ -52,27 +52,27 @@ int ieee80211_is_valid_channel(struct ieee80211_device *ieee, u8 channel) ...@@ -52,27 +52,27 @@ int ieee80211_is_valid_channel(struct ieee80211_device *ieee, u8 channel)
if (ieee->geo.bg_channels == 0 && ieee->geo.a_channels == 0) if (ieee->geo.bg_channels == 0 && ieee->geo.a_channels == 0)
return 0; return 0;
if (ieee->freq_band & IEEE80211_24GHZ_BAND) if (ieee->freq_band & LIBIPW_24GHZ_BAND)
for (i = 0; i < ieee->geo.bg_channels; i++) for (i = 0; i < ieee->geo.bg_channels; i++)
/* NOTE: If G mode is currently supported but /* NOTE: If G mode is currently supported but
* this is a B only channel, we don't see it * this is a B only channel, we don't see it
* as valid. */ * as valid. */
if ((ieee->geo.bg[i].channel == channel) && if ((ieee->geo.bg[i].channel == channel) &&
!(ieee->geo.bg[i].flags & IEEE80211_CH_INVALID) && !(ieee->geo.bg[i].flags & LIBIPW_CH_INVALID) &&
(!(ieee->mode & IEEE_G) || (!(ieee->mode & IEEE_G) ||
!(ieee->geo.bg[i].flags & IEEE80211_CH_B_ONLY))) !(ieee->geo.bg[i].flags & LIBIPW_CH_B_ONLY)))
return IEEE80211_24GHZ_BAND; return LIBIPW_24GHZ_BAND;
if (ieee->freq_band & IEEE80211_52GHZ_BAND) if (ieee->freq_band & LIBIPW_52GHZ_BAND)
for (i = 0; i < ieee->geo.a_channels; i++) for (i = 0; i < ieee->geo.a_channels; i++)
if ((ieee->geo.a[i].channel == channel) && if ((ieee->geo.a[i].channel == channel) &&
!(ieee->geo.a[i].flags & IEEE80211_CH_INVALID)) !(ieee->geo.a[i].flags & LIBIPW_CH_INVALID))
return IEEE80211_52GHZ_BAND; return LIBIPW_52GHZ_BAND;
return 0; return 0;
} }
int ieee80211_channel_to_index(struct ieee80211_device *ieee, u8 channel) int libipw_channel_to_index(struct libipw_device *ieee, u8 channel)
{ {
int i; int i;
...@@ -81,12 +81,12 @@ int ieee80211_channel_to_index(struct ieee80211_device *ieee, u8 channel) ...@@ -81,12 +81,12 @@ int ieee80211_channel_to_index(struct ieee80211_device *ieee, u8 channel)
if (ieee->geo.bg_channels == 0 && ieee->geo.a_channels == 0) if (ieee->geo.bg_channels == 0 && ieee->geo.a_channels == 0)
return -1; return -1;
if (ieee->freq_band & IEEE80211_24GHZ_BAND) if (ieee->freq_band & LIBIPW_24GHZ_BAND)
for (i = 0; i < ieee->geo.bg_channels; i++) for (i = 0; i < ieee->geo.bg_channels; i++)
if (ieee->geo.bg[i].channel == channel) if (ieee->geo.bg[i].channel == channel)
return i; return i;
if (ieee->freq_band & IEEE80211_52GHZ_BAND) if (ieee->freq_band & LIBIPW_52GHZ_BAND)
for (i = 0; i < ieee->geo.a_channels; i++) for (i = 0; i < ieee->geo.a_channels; i++)
if (ieee->geo.a[i].channel == channel) if (ieee->geo.a[i].channel == channel)
return i; return i;
...@@ -94,22 +94,22 @@ int ieee80211_channel_to_index(struct ieee80211_device *ieee, u8 channel) ...@@ -94,22 +94,22 @@ int ieee80211_channel_to_index(struct ieee80211_device *ieee, u8 channel)
return -1; return -1;
} }
u32 ieee80211_channel_to_freq(struct ieee80211_device * ieee, u8 channel) u32 libipw_channel_to_freq(struct libipw_device * ieee, u8 channel)
{ {
const struct ieee80211_channel * ch; const struct libipw_channel * ch;
/* Driver needs to initialize the geography map before using /* Driver needs to initialize the geography map before using
* these helper functions */ * these helper functions */
if (ieee->geo.bg_channels == 0 && ieee->geo.a_channels == 0) if (ieee->geo.bg_channels == 0 && ieee->geo.a_channels == 0)
return 0; return 0;
ch = ieee80211_get_channel(ieee, channel); ch = libipw_get_channel(ieee, channel);
if (!ch->channel) if (!ch->channel)
return 0; return 0;
return ch->freq; return ch->freq;
} }
u8 ieee80211_freq_to_channel(struct ieee80211_device * ieee, u32 freq) u8 libipw_freq_to_channel(struct libipw_device * ieee, u32 freq)
{ {
int i; int i;
...@@ -120,12 +120,12 @@ u8 ieee80211_freq_to_channel(struct ieee80211_device * ieee, u32 freq) ...@@ -120,12 +120,12 @@ u8 ieee80211_freq_to_channel(struct ieee80211_device * ieee, u32 freq)
freq /= 100000; freq /= 100000;
if (ieee->freq_band & IEEE80211_24GHZ_BAND) if (ieee->freq_band & LIBIPW_24GHZ_BAND)
for (i = 0; i < ieee->geo.bg_channels; i++) for (i = 0; i < ieee->geo.bg_channels; i++)
if (ieee->geo.bg[i].freq == freq) if (ieee->geo.bg[i].freq == freq)
return ieee->geo.bg[i].channel; return ieee->geo.bg[i].channel;
if (ieee->freq_band & IEEE80211_52GHZ_BAND) if (ieee->freq_band & LIBIPW_52GHZ_BAND)
for (i = 0; i < ieee->geo.a_channels; i++) for (i = 0; i < ieee->geo.a_channels; i++)
if (ieee->geo.a[i].freq == freq) if (ieee->geo.a[i].freq == freq)
return ieee->geo.a[i].channel; return ieee->geo.a[i].channel;
...@@ -133,63 +133,63 @@ u8 ieee80211_freq_to_channel(struct ieee80211_device * ieee, u32 freq) ...@@ -133,63 +133,63 @@ u8 ieee80211_freq_to_channel(struct ieee80211_device * ieee, u32 freq)
return 0; return 0;
} }
int ieee80211_set_geo(struct ieee80211_device *ieee, int libipw_set_geo(struct libipw_device *ieee,
const struct ieee80211_geo *geo) const struct libipw_geo *geo)
{ {
memcpy(ieee->geo.name, geo->name, 3); memcpy(ieee->geo.name, geo->name, 3);
ieee->geo.name[3] = '\0'; ieee->geo.name[3] = '\0';
ieee->geo.bg_channels = geo->bg_channels; ieee->geo.bg_channels = geo->bg_channels;
ieee->geo.a_channels = geo->a_channels; ieee->geo.a_channels = geo->a_channels;
memcpy(ieee->geo.bg, geo->bg, geo->bg_channels * memcpy(ieee->geo.bg, geo->bg, geo->bg_channels *
sizeof(struct ieee80211_channel)); sizeof(struct libipw_channel));
memcpy(ieee->geo.a, geo->a, ieee->geo.a_channels * memcpy(ieee->geo.a, geo->a, ieee->geo.a_channels *
sizeof(struct ieee80211_channel)); sizeof(struct libipw_channel));
return 0; return 0;
} }
const struct ieee80211_geo *ieee80211_get_geo(struct ieee80211_device *ieee) const struct libipw_geo *libipw_get_geo(struct libipw_device *ieee)
{ {
return &ieee->geo; return &ieee->geo;
} }
u8 ieee80211_get_channel_flags(struct ieee80211_device * ieee, u8 channel) u8 libipw_get_channel_flags(struct libipw_device * ieee, u8 channel)
{ {
int index = ieee80211_channel_to_index(ieee, channel); int index = libipw_channel_to_index(ieee, channel);
if (index == -1) if (index == -1)
return IEEE80211_CH_INVALID; return LIBIPW_CH_INVALID;
if (channel <= IEEE80211_24GHZ_CHANNELS) if (channel <= LIBIPW_24GHZ_CHANNELS)
return ieee->geo.bg[index].flags; return ieee->geo.bg[index].flags;
return ieee->geo.a[index].flags; return ieee->geo.a[index].flags;
} }
static const struct ieee80211_channel bad_channel = { static const struct libipw_channel bad_channel = {
.channel = 0, .channel = 0,
.flags = IEEE80211_CH_INVALID, .flags = LIBIPW_CH_INVALID,
.max_power = 0, .max_power = 0,
}; };
const struct ieee80211_channel *ieee80211_get_channel(struct ieee80211_device const struct libipw_channel *libipw_get_channel(struct libipw_device
*ieee, u8 channel) *ieee, u8 channel)
{ {
int index = ieee80211_channel_to_index(ieee, channel); int index = libipw_channel_to_index(ieee, channel);
if (index == -1) if (index == -1)
return &bad_channel; return &bad_channel;
if (channel <= IEEE80211_24GHZ_CHANNELS) if (channel <= LIBIPW_24GHZ_CHANNELS)
return &ieee->geo.bg[index]; return &ieee->geo.bg[index];
return &ieee->geo.a[index]; return &ieee->geo.a[index];
} }
EXPORT_SYMBOL(ieee80211_get_channel); EXPORT_SYMBOL(libipw_get_channel);
EXPORT_SYMBOL(ieee80211_get_channel_flags); EXPORT_SYMBOL(libipw_get_channel_flags);
EXPORT_SYMBOL(ieee80211_is_valid_channel); EXPORT_SYMBOL(libipw_is_valid_channel);
EXPORT_SYMBOL(ieee80211_freq_to_channel); EXPORT_SYMBOL(libipw_freq_to_channel);
EXPORT_SYMBOL(ieee80211_channel_to_freq); EXPORT_SYMBOL(libipw_channel_to_freq);
EXPORT_SYMBOL(ieee80211_channel_to_index); EXPORT_SYMBOL(libipw_channel_to_index);
EXPORT_SYMBOL(ieee80211_set_geo); EXPORT_SYMBOL(libipw_set_geo);
EXPORT_SYMBOL(ieee80211_get_geo); EXPORT_SYMBOL(libipw_get_geo);
...@@ -50,11 +50,11 @@ ...@@ -50,11 +50,11 @@
#include <net/net_namespace.h> #include <net/net_namespace.h>
#include <net/arp.h> #include <net/arp.h>
#include "ieee80211.h" #include "libipw.h"
#define DRV_DESCRIPTION "802.11 data/management/control stack" #define DRV_DESCRIPTION "802.11 data/management/control stack"
#define DRV_NAME "ieee80211" #define DRV_NAME "ieee80211"
#define DRV_VERSION IEEE80211_VERSION #define DRV_VERSION LIBIPW_VERSION
#define DRV_COPYRIGHT "Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>" #define DRV_COPYRIGHT "Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>"
MODULE_VERSION(DRV_VERSION); MODULE_VERSION(DRV_VERSION);
...@@ -62,13 +62,13 @@ MODULE_DESCRIPTION(DRV_DESCRIPTION); ...@@ -62,13 +62,13 @@ MODULE_DESCRIPTION(DRV_DESCRIPTION);
MODULE_AUTHOR(DRV_COPYRIGHT); MODULE_AUTHOR(DRV_COPYRIGHT);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
static int ieee80211_networks_allocate(struct ieee80211_device *ieee) static int libipw_networks_allocate(struct libipw_device *ieee)
{ {
if (ieee->networks) if (ieee->networks)
return 0; return 0;
ieee->networks = ieee->networks =
kzalloc(MAX_NETWORK_COUNT * sizeof(struct ieee80211_network), kzalloc(MAX_NETWORK_COUNT * sizeof(struct libipw_network),
GFP_KERNEL); GFP_KERNEL);
if (!ieee->networks) { if (!ieee->networks) {
printk(KERN_WARNING "%s: Out of memory allocating beacons\n", printk(KERN_WARNING "%s: Out of memory allocating beacons\n",
...@@ -79,7 +79,7 @@ static int ieee80211_networks_allocate(struct ieee80211_device *ieee) ...@@ -79,7 +79,7 @@ static int ieee80211_networks_allocate(struct ieee80211_device *ieee)
return 0; return 0;
} }
void ieee80211_network_reset(struct ieee80211_network *network) void libipw_network_reset(struct libipw_network *network)
{ {
if (!network) if (!network)
return; return;
...@@ -90,7 +90,7 @@ void ieee80211_network_reset(struct ieee80211_network *network) ...@@ -90,7 +90,7 @@ void ieee80211_network_reset(struct ieee80211_network *network)
} }
} }
static inline void ieee80211_networks_free(struct ieee80211_device *ieee) static inline void libipw_networks_free(struct libipw_device *ieee)
{ {
int i; int i;
...@@ -105,10 +105,10 @@ static inline void ieee80211_networks_free(struct ieee80211_device *ieee) ...@@ -105,10 +105,10 @@ static inline void ieee80211_networks_free(struct ieee80211_device *ieee)
ieee->networks = NULL; ieee->networks = NULL;
} }
void ieee80211_networks_age(struct ieee80211_device *ieee, void libipw_networks_age(struct libipw_device *ieee,
unsigned long age_secs) unsigned long age_secs)
{ {
struct ieee80211_network *network = NULL; struct libipw_network *network = NULL;
unsigned long flags; unsigned long flags;
unsigned long age_jiffies = msecs_to_jiffies(age_secs * MSEC_PER_SEC); unsigned long age_jiffies = msecs_to_jiffies(age_secs * MSEC_PER_SEC);
...@@ -118,9 +118,9 @@ void ieee80211_networks_age(struct ieee80211_device *ieee, ...@@ -118,9 +118,9 @@ void ieee80211_networks_age(struct ieee80211_device *ieee,
} }
spin_unlock_irqrestore(&ieee->lock, flags); spin_unlock_irqrestore(&ieee->lock, flags);
} }
EXPORT_SYMBOL(ieee80211_networks_age); EXPORT_SYMBOL(libipw_networks_age);
static void ieee80211_networks_initialize(struct ieee80211_device *ieee) static void libipw_networks_initialize(struct libipw_device *ieee)
{ {
int i; int i;
...@@ -131,38 +131,38 @@ static void ieee80211_networks_initialize(struct ieee80211_device *ieee) ...@@ -131,38 +131,38 @@ static void ieee80211_networks_initialize(struct ieee80211_device *ieee)
&ieee->network_free_list); &ieee->network_free_list);
} }
int ieee80211_change_mtu(struct net_device *dev, int new_mtu) int libipw_change_mtu(struct net_device *dev, int new_mtu)
{ {
if ((new_mtu < 68) || (new_mtu > IEEE80211_DATA_LEN)) if ((new_mtu < 68) || (new_mtu > LIBIPW_DATA_LEN))
return -EINVAL; return -EINVAL;
dev->mtu = new_mtu; dev->mtu = new_mtu;
return 0; return 0;
} }
EXPORT_SYMBOL(ieee80211_change_mtu); EXPORT_SYMBOL(libipw_change_mtu);
struct net_device *alloc_ieee80211(int sizeof_priv) struct net_device *alloc_ieee80211(int sizeof_priv)
{ {
struct ieee80211_device *ieee; struct libipw_device *ieee;
struct net_device *dev; struct net_device *dev;
int err; int err;
IEEE80211_DEBUG_INFO("Initializing...\n"); LIBIPW_DEBUG_INFO("Initializing...\n");
dev = alloc_etherdev(sizeof(struct ieee80211_device) + sizeof_priv); dev = alloc_etherdev(sizeof(struct libipw_device) + sizeof_priv);
if (!dev) { if (!dev) {
IEEE80211_ERROR("Unable to allocate network device.\n"); LIBIPW_ERROR("Unable to allocate network device.\n");
goto failed; goto failed;
} }
ieee = netdev_priv(dev); ieee = netdev_priv(dev);
ieee->dev = dev; ieee->dev = dev;
err = ieee80211_networks_allocate(ieee); err = libipw_networks_allocate(ieee);
if (err) { if (err) {
IEEE80211_ERROR("Unable to allocate beacon storage: %d\n", err); LIBIPW_ERROR("Unable to allocate beacon storage: %d\n", err);
goto failed_free_netdev; goto failed_free_netdev;
} }
ieee80211_networks_initialize(ieee); libipw_networks_initialize(ieee);
/* Default fragmentation threshold is maximum payload size */ /* Default fragmentation threshold is maximum payload size */
ieee->fts = DEFAULT_FTS; ieee->fts = DEFAULT_FTS;
...@@ -201,25 +201,25 @@ struct net_device *alloc_ieee80211(int sizeof_priv) ...@@ -201,25 +201,25 @@ struct net_device *alloc_ieee80211(int sizeof_priv)
void free_ieee80211(struct net_device *dev) void free_ieee80211(struct net_device *dev)
{ {
struct ieee80211_device *ieee = netdev_priv(dev); struct libipw_device *ieee = netdev_priv(dev);
lib80211_crypt_info_free(&ieee->crypt_info); lib80211_crypt_info_free(&ieee->crypt_info);
ieee80211_networks_free(ieee); libipw_networks_free(ieee);
free_netdev(dev); free_netdev(dev);
} }
#ifdef CONFIG_LIBIPW_DEBUG