]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/wireless/ipw2x00/ipw2200.c
Merge commit 'v2.6.35' into kbuild/kbuild
[karo-tx-linux.git] / drivers / net / wireless / ipw2x00 / ipw2200.c
index 8d72e3d1958680bfaa9dbb79974cabf889e7b0ac..3aa3bb18f615fc98b790e0dd3b91dd8f79ddf630 100644 (file)
@@ -459,7 +459,7 @@ static u8 _ipw_read_reg8(struct ipw_priv *priv, u32 reg)
 {
        u32 word;
        _ipw_write32(priv, IPW_INDIRECT_ADDR, reg & IPW_INDIRECT_ADDR_MASK);
-       IPW_DEBUG_IO(" reg = 0x%8X : \n", reg);
+       IPW_DEBUG_IO(" reg = 0x%8X :\n", reg);
        word = _ipw_read32(priv, IPW_INDIRECT_DATA);
        return (word >> ((reg & 0x3) * 8)) & 0xff;
 }
@@ -473,7 +473,7 @@ static u32 _ipw_read_reg32(struct ipw_priv *priv, u32 reg)
 
        _ipw_write32(priv, IPW_INDIRECT_ADDR, reg);
        value = _ipw_read32(priv, IPW_INDIRECT_DATA);
-       IPW_DEBUG_IO(" reg = 0x%4X : value = 0x%4x \n", reg, value);
+       IPW_DEBUG_IO(" reg = 0x%4X : value = 0x%4x\n", reg, value);
        return value;
 }
 
@@ -2349,16 +2349,25 @@ static void ipw_bg_adapter_restart(struct work_struct *work)
        mutex_unlock(&priv->mutex);
 }
 
-#define IPW_SCAN_CHECK_WATCHDOG (5 * HZ)
+static void ipw_abort_scan(struct ipw_priv *priv);
+
+#define IPW_SCAN_CHECK_WATCHDOG        (5 * HZ)
 
 static void ipw_scan_check(void *data)
 {
        struct ipw_priv *priv = data;
-       if (priv->status & (STATUS_SCANNING | STATUS_SCAN_ABORTING)) {
+
+       if (priv->status & STATUS_SCAN_ABORTING) {
                IPW_DEBUG_SCAN("Scan completion watchdog resetting "
                               "adapter after (%dms).\n",
                               jiffies_to_msecs(IPW_SCAN_CHECK_WATCHDOG));
                queue_work(priv->workqueue, &priv->adapter_restart);
+       } else if (priv->status & STATUS_SCANNING) {
+               IPW_DEBUG_SCAN("Scan completion watchdog aborting scan "
+                              "after (%dms).\n",
+                              jiffies_to_msecs(IPW_SCAN_CHECK_WATCHDOG));
+               ipw_abort_scan(priv);
+               queue_delayed_work(priv->workqueue, &priv->scan_check, HZ);
        }
 }
 
@@ -2598,8 +2607,6 @@ static inline void eeprom_write_reg(struct ipw_priv *p, u32 data)
 
        /* the eeprom requires some time to complete the operation */
        udelay(p->eeprom_delay);
-
-       return;
 }
 
 /* perform a chip select operation */
@@ -2739,7 +2746,7 @@ static inline void ipw_fw_dma_reset_command_blocks(struct ipw_priv *priv)
 static int ipw_fw_dma_enable(struct ipw_priv *priv)
 {                              /* start dma engine but no transfers yet */
 
-       IPW_DEBUG_FW(">> : \n");
+       IPW_DEBUG_FW(">> :\n");
 
        /* Start the dma */
        ipw_fw_dma_reset_command_blocks(priv);
@@ -2747,7 +2754,7 @@ static int ipw_fw_dma_enable(struct ipw_priv *priv)
        /* Write CB base address */
        ipw_write_reg32(priv, IPW_DMA_I_CB_BASE, IPW_SHARED_SRAM_DMA_CONTROL);
 
-       IPW_DEBUG_FW("<< : \n");
+       IPW_DEBUG_FW("<< :\n");
        return 0;
 }
 
@@ -2762,7 +2769,7 @@ static void ipw_fw_dma_abort(struct ipw_priv *priv)
        ipw_write_reg32(priv, IPW_DMA_I_DMA_CONTROL, control);
        priv->sram_desc.last_cb_index = 0;
 
-       IPW_DEBUG_FW("<< \n");
+       IPW_DEBUG_FW("<<\n");
 }
 
 static int ipw_fw_dma_write_command_block(struct ipw_priv *priv, int index,
@@ -2813,29 +2820,29 @@ static void ipw_fw_dma_dump_command_block(struct ipw_priv *priv)
 
        IPW_DEBUG_FW(">> :\n");
        address = ipw_read_reg32(priv, IPW_DMA_I_CURRENT_CB);
-       IPW_DEBUG_FW_INFO("Current CB is 0x%x \n", address);
+       IPW_DEBUG_FW_INFO("Current CB is 0x%x\n", address);
 
        /* Read the DMA Controlor register */
        register_value = ipw_read_reg32(priv, IPW_DMA_I_DMA_CONTROL);
-       IPW_DEBUG_FW_INFO("IPW_DMA_I_DMA_CONTROL is 0x%x \n", register_value);
+       IPW_DEBUG_FW_INFO("IPW_DMA_I_DMA_CONTROL is 0x%x\n", register_value);
 
        /* Print the CB values */
        cb_fields_address = address;
        register_value = ipw_read_reg32(priv, cb_fields_address);
-       IPW_DEBUG_FW_INFO("Current CB ControlField is 0x%x \n", register_value);
+       IPW_DEBUG_FW_INFO("Current CB Control Field is 0x%x\n", register_value);
 
        cb_fields_address += sizeof(u32);
        register_value = ipw_read_reg32(priv, cb_fields_address);
-       IPW_DEBUG_FW_INFO("Current CB Source Field is 0x%x \n", register_value);
+       IPW_DEBUG_FW_INFO("Current CB Source Field is 0x%x\n", register_value);
 
        cb_fields_address += sizeof(u32);
        register_value = ipw_read_reg32(priv, cb_fields_address);
-       IPW_DEBUG_FW_INFO("Current CB Destination Field is 0x%x \n",
+       IPW_DEBUG_FW_INFO("Current CB Destination Field is 0x%x\n",
                          register_value);
 
        cb_fields_address += sizeof(u32);
        register_value = ipw_read_reg32(priv, cb_fields_address);
-       IPW_DEBUG_FW_INFO("Current CB Status Field is 0x%x \n", register_value);
+       IPW_DEBUG_FW_INFO("Current CB Status Field is 0x%x\n", register_value);
 
        IPW_DEBUG_FW(">> :\n");
 }
@@ -2851,7 +2858,7 @@ static int ipw_fw_dma_command_block_index(struct ipw_priv *priv)
        current_cb_index = (current_cb_address - IPW_SHARED_SRAM_DMA_CONTROL) /
            sizeof(struct command_block);
 
-       IPW_DEBUG_FW_INFO("Current CB index 0x%x address = 0x%X \n",
+       IPW_DEBUG_FW_INFO("Current CB index 0x%x address = 0x%X\n",
                          current_cb_index, current_cb_address);
 
        IPW_DEBUG_FW(">> :\n");
@@ -2910,7 +2917,7 @@ static int ipw_fw_dma_add_buffer(struct ipw_priv *priv, dma_addr_t *src_address,
        int ret, i;
        u32 size;
 
-       IPW_DEBUG_FW(">> \n");
+       IPW_DEBUG_FW(">>\n");
        IPW_DEBUG_FW_INFO("nr=%d dest_address=0x%x len=0x%x\n",
                          nr, dest_address, len);
 
@@ -2927,7 +2934,7 @@ static int ipw_fw_dma_add_buffer(struct ipw_priv *priv, dma_addr_t *src_address,
                        IPW_DEBUG_FW_INFO(": Added new cb\n");
        }
 
-       IPW_DEBUG_FW("<< \n");
+       IPW_DEBUG_FW("<<\n");
        return 0;
 }
 
@@ -2936,7 +2943,7 @@ static int ipw_fw_dma_wait(struct ipw_priv *priv)
        u32 current_index = 0, previous_index;
        u32 watchdog = 0;
 
-       IPW_DEBUG_FW(">> : \n");
+       IPW_DEBUG_FW(">> :\n");
 
        current_index = ipw_fw_dma_command_block_index(priv);
        IPW_DEBUG_FW_INFO("sram_desc.last_cb_index:0x%08X\n",
@@ -2965,7 +2972,7 @@ static int ipw_fw_dma_wait(struct ipw_priv *priv)
        ipw_set_bit(priv, IPW_RESET_REG,
                    IPW_RESET_REG_MASTER_DISABLED | IPW_RESET_REG_STOP_MASTER);
 
-       IPW_DEBUG_FW("<< dmaWaitSync \n");
+       IPW_DEBUG_FW("<< dmaWaitSync\n");
        return 0;
 }
 
@@ -3026,7 +3033,7 @@ static int ipw_stop_master(struct ipw_priv *priv)
 {
        int rc;
 
-       IPW_DEBUG_TRACE(">> \n");
+       IPW_DEBUG_TRACE(">>\n");
        /* stop master. typical delay - 0 */
        ipw_set_bit(priv, IPW_RESET_REG, IPW_RESET_REG_STOP_MASTER);
 
@@ -3045,7 +3052,7 @@ static int ipw_stop_master(struct ipw_priv *priv)
 
 static void ipw_arc_release(struct ipw_priv *priv)
 {
-       IPW_DEBUG_TRACE(">> \n");
+       IPW_DEBUG_TRACE(">>\n");
        mdelay(5);
 
        ipw_clear_bit(priv, IPW_RESET_REG, CBD_RESET_REG_PRINCETON_RESET);
@@ -3067,7 +3074,7 @@ static int ipw_load_ucode(struct ipw_priv *priv, u8 * data, size_t len)
 
        image = (__le16 *) data;
 
-       IPW_DEBUG_TRACE(">> \n");
+       IPW_DEBUG_TRACE(">>\n");
 
        rc = ipw_stop_master(priv);
 
@@ -3181,7 +3188,7 @@ static int ipw_load_firmware(struct ipw_priv *priv, u8 * data, size_t len)
        void **virts;
        dma_addr_t *phys;
 
-       IPW_DEBUG_TRACE("<< : \n");
+       IPW_DEBUG_TRACE("<< :\n");
 
        virts = kmalloc(sizeof(void *) * CB_NUMBER_OF_ELEMENTS_SMALL,
                        GFP_KERNEL);
@@ -4482,7 +4489,7 @@ static void ipw_rx_notification(struct ipw_priv *priv,
                        case CMAS_ASSOCIATED:{
                                        IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE |
                                                  IPW_DL_ASSOC,
-                                                 "associated: '%s' %pM \n",
+                                                 "associated: '%s' %pM\n",
                                                  print_ssid(ssid, priv->essid,
                                                             priv->essid_len),
                                                  priv->bssid);
@@ -4563,7 +4570,7 @@ static void ipw_rx_notification(struct ipw_priv *priv,
                                                          IPW_DL_ASSOC,
                                                          "deauthenticated: '%s' "
                                                          "%pM"
-                                                         ": (0x%04X) - %s \n",
+                                                         ": (0x%04X) - %s\n",
                                                          print_ssid(ssid,
                                                                     priv->
                                                                     essid,
@@ -4614,7 +4621,7 @@ static void ipw_rx_notification(struct ipw_priv *priv,
 
                                        IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE |
                                                  IPW_DL_ASSOC,
-                                                 "disassociated: '%s' %pM \n",
+                                                 "disassociated: '%s' %pM\n",
                                                  print_ssid(ssid, priv->essid,
                                                             priv->essid_len),
                                                  priv->bssid);
@@ -4652,7 +4659,7 @@ static void ipw_rx_notification(struct ipw_priv *priv,
                        switch (auth->state) {
                        case CMAS_AUTHENTICATED:
                                IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE,
-                                         "authenticated: '%s' %pM \n",
+                                         "authenticated: '%s' %pM\n",
                                          print_ssid(ssid, priv->essid,
                                                     priv->essid_len),
                                          priv->bssid);
@@ -6925,7 +6932,7 @@ static u8 ipw_qos_current_mode(struct ipw_priv * priv)
        } else {
                mode = priv->ieee->mode;
        }
-       IPW_DEBUG_QOS("QoS network/card mode %d \n", mode);
+       IPW_DEBUG_QOS("QoS network/card mode %d\n", mode);
        return mode;
 }
 
@@ -6965,7 +6972,7 @@ static int ipw_qos_handle_probe_response(struct ipw_priv *priv,
                               &def_parameters_OFDM, size);
 
                if ((network->qos_data.active == 1) && (active_network == 1)) {
-                       IPW_DEBUG_QOS("QoS was disabled call qos_activate \n");
+                       IPW_DEBUG_QOS("QoS was disabled call qos_activate\n");
                        schedule_work(&priv->qos_activate);
                }
 
@@ -7542,7 +7549,7 @@ static int ipw_associate_network(struct ipw_priv *priv,
                return err;
        }
 
-       IPW_DEBUG(IPW_DL_STATE, "associating: '%s' %pM \n",
+       IPW_DEBUG(IPW_DL_STATE, "associating: '%s' %pM\n",
                  print_ssid(ssid, priv->essid, priv->essid_len),
                  priv->bssid);
 
@@ -8793,7 +8800,7 @@ static int ipw_wx_set_freq(struct net_device *dev,
                }
        }
 
-       IPW_DEBUG_WX("SET Freq/Channel -> %d \n", fwrq->m);
+       IPW_DEBUG_WX("SET Freq/Channel -> %d\n", fwrq->m);
        mutex_lock(&priv->mutex);
        ret = ipw_set_channel(priv, channel);
        mutex_unlock(&priv->mutex);
@@ -8835,7 +8842,7 @@ static int ipw_wx_get_freq(struct net_device *dev,
                wrqu->freq.m = 0;
 
        mutex_unlock(&priv->mutex);
-       IPW_DEBUG_WX("GET Freq/Channel -> %d \n", priv->channel);
+       IPW_DEBUG_WX("GET Freq/Channel -> %d\n", priv->channel);
        return 0;
 }
 
@@ -9230,7 +9237,7 @@ static int ipw_wx_get_sens(struct net_device *dev,
        wrqu->sens.value = priv->roaming_threshold;
        mutex_unlock(&priv->mutex);
 
-       IPW_DEBUG_WX("GET roaming threshold -> %s %d \n",
+       IPW_DEBUG_WX("GET roaming threshold -> %s %d\n",
                     wrqu->power.disabled ? "OFF" : "ON", wrqu->power.value);
 
        return 0;
@@ -9358,7 +9365,7 @@ static int ipw_wx_get_rate(struct net_device *dev,
        wrqu->bitrate.value = priv->last_rate;
        wrqu->bitrate.fixed = (priv->config & CFG_FIXED_RATE) ? 1 : 0;
        mutex_unlock(&priv->mutex);
-       IPW_DEBUG_WX("GET Rate -> %d \n", wrqu->bitrate.value);
+       IPW_DEBUG_WX("GET Rate -> %d\n", wrqu->bitrate.value);
        return 0;
 }
 
@@ -9381,7 +9388,7 @@ static int ipw_wx_set_rts(struct net_device *dev,
 
        ipw_send_rts_threshold(priv, priv->rts_threshold);
        mutex_unlock(&priv->mutex);
-       IPW_DEBUG_WX("SET RTS Threshold -> %d \n", priv->rts_threshold);
+       IPW_DEBUG_WX("SET RTS Threshold -> %d\n", priv->rts_threshold);
        return 0;
 }
 
@@ -9395,7 +9402,7 @@ static int ipw_wx_get_rts(struct net_device *dev,
        wrqu->rts.fixed = 0;    /* no auto select */
        wrqu->rts.disabled = (wrqu->rts.value == DEFAULT_RTS_THRESHOLD);
        mutex_unlock(&priv->mutex);
-       IPW_DEBUG_WX("GET RTS Threshold -> %d \n", wrqu->rts.value);
+       IPW_DEBUG_WX("GET RTS Threshold -> %d\n", wrqu->rts.value);
        return 0;
 }
 
@@ -9445,7 +9452,7 @@ static int ipw_wx_get_txpow(struct net_device *dev,
        wrqu->power.disabled = (priv->status & STATUS_RF_KILL_MASK) ? 1 : 0;
        mutex_unlock(&priv->mutex);
 
-       IPW_DEBUG_WX("GET TX Power -> %s %d \n",
+       IPW_DEBUG_WX("GET TX Power -> %s %d\n",
                     wrqu->power.disabled ? "OFF" : "ON", wrqu->power.value);
 
        return 0;
@@ -9471,7 +9478,7 @@ static int ipw_wx_set_frag(struct net_device *dev,
 
        ipw_send_frag_threshold(priv, wrqu->frag.value);
        mutex_unlock(&priv->mutex);
-       IPW_DEBUG_WX("SET Frag Threshold -> %d \n", wrqu->frag.value);
+       IPW_DEBUG_WX("SET Frag Threshold -> %d\n", wrqu->frag.value);
        return 0;
 }
 
@@ -9485,7 +9492,7 @@ static int ipw_wx_get_frag(struct net_device *dev,
        wrqu->frag.fixed = 0;   /* no auto select */
        wrqu->frag.disabled = (wrqu->frag.value == DEFAULT_FTS);
        mutex_unlock(&priv->mutex);
-       IPW_DEBUG_WX("GET Frag Threshold -> %d \n", wrqu->frag.value);
+       IPW_DEBUG_WX("GET Frag Threshold -> %d\n", wrqu->frag.value);
 
        return 0;
 }
@@ -9549,7 +9556,7 @@ static int ipw_wx_get_retry(struct net_device *dev,
        }
        mutex_unlock(&priv->mutex);
 
-       IPW_DEBUG_WX("GET retry -> %d \n", wrqu->retry.value);
+       IPW_DEBUG_WX("GET retry -> %d\n", wrqu->retry.value);
 
        return 0;
 }
@@ -9996,49 +10003,48 @@ static int ipw_wx_sw_reset(struct net_device *dev,
 }
 
 /* Rebase the WE IOCTLs to zero for the handler array */
-#define IW_IOCTL(x) [(x)-SIOCSIWCOMMIT]
 static iw_handler ipw_wx_handlers[] = {
-       IW_IOCTL(SIOCGIWNAME) = (iw_handler) cfg80211_wext_giwname,
-       IW_IOCTL(SIOCSIWFREQ) = ipw_wx_set_freq,
-       IW_IOCTL(SIOCGIWFREQ) = ipw_wx_get_freq,
-       IW_IOCTL(SIOCSIWMODE) = ipw_wx_set_mode,
-       IW_IOCTL(SIOCGIWMODE) = ipw_wx_get_mode,
-       IW_IOCTL(SIOCSIWSENS) = ipw_wx_set_sens,
-       IW_IOCTL(SIOCGIWSENS) = ipw_wx_get_sens,
-       IW_IOCTL(SIOCGIWRANGE) = ipw_wx_get_range,
-       IW_IOCTL(SIOCSIWAP) = ipw_wx_set_wap,
-       IW_IOCTL(SIOCGIWAP) = ipw_wx_get_wap,
-       IW_IOCTL(SIOCSIWSCAN) = ipw_wx_set_scan,
-       IW_IOCTL(SIOCGIWSCAN) = ipw_wx_get_scan,
-       IW_IOCTL(SIOCSIWESSID) = ipw_wx_set_essid,
-       IW_IOCTL(SIOCGIWESSID) = ipw_wx_get_essid,
-       IW_IOCTL(SIOCSIWNICKN) = ipw_wx_set_nick,
-       IW_IOCTL(SIOCGIWNICKN) = ipw_wx_get_nick,
-       IW_IOCTL(SIOCSIWRATE) = ipw_wx_set_rate,
-       IW_IOCTL(SIOCGIWRATE) = ipw_wx_get_rate,
-       IW_IOCTL(SIOCSIWRTS) = ipw_wx_set_rts,
-       IW_IOCTL(SIOCGIWRTS) = ipw_wx_get_rts,
-       IW_IOCTL(SIOCSIWFRAG) = ipw_wx_set_frag,
-       IW_IOCTL(SIOCGIWFRAG) = ipw_wx_get_frag,
-       IW_IOCTL(SIOCSIWTXPOW) = ipw_wx_set_txpow,
-       IW_IOCTL(SIOCGIWTXPOW) = ipw_wx_get_txpow,
-       IW_IOCTL(SIOCSIWRETRY) = ipw_wx_set_retry,
-       IW_IOCTL(SIOCGIWRETRY) = ipw_wx_get_retry,
-       IW_IOCTL(SIOCSIWENCODE) = ipw_wx_set_encode,
-       IW_IOCTL(SIOCGIWENCODE) = ipw_wx_get_encode,
-       IW_IOCTL(SIOCSIWPOWER) = ipw_wx_set_power,
-       IW_IOCTL(SIOCGIWPOWER) = ipw_wx_get_power,
-       IW_IOCTL(SIOCSIWSPY) = iw_handler_set_spy,
-       IW_IOCTL(SIOCGIWSPY) = iw_handler_get_spy,
-       IW_IOCTL(SIOCSIWTHRSPY) = iw_handler_set_thrspy,
-       IW_IOCTL(SIOCGIWTHRSPY) = iw_handler_get_thrspy,
-       IW_IOCTL(SIOCSIWGENIE) = ipw_wx_set_genie,
-       IW_IOCTL(SIOCGIWGENIE) = ipw_wx_get_genie,
-       IW_IOCTL(SIOCSIWMLME) = ipw_wx_set_mlme,
-       IW_IOCTL(SIOCSIWAUTH) = ipw_wx_set_auth,
-       IW_IOCTL(SIOCGIWAUTH) = ipw_wx_get_auth,
-       IW_IOCTL(SIOCSIWENCODEEXT) = ipw_wx_set_encodeext,
-       IW_IOCTL(SIOCGIWENCODEEXT) = ipw_wx_get_encodeext,
+       IW_HANDLER(SIOCGIWNAME, (iw_handler)cfg80211_wext_giwname),
+       IW_HANDLER(SIOCSIWFREQ, ipw_wx_set_freq),
+       IW_HANDLER(SIOCGIWFREQ, ipw_wx_get_freq),
+       IW_HANDLER(SIOCSIWMODE, ipw_wx_set_mode),
+       IW_HANDLER(SIOCGIWMODE, ipw_wx_get_mode),
+       IW_HANDLER(SIOCSIWSENS, ipw_wx_set_sens),
+       IW_HANDLER(SIOCGIWSENS, ipw_wx_get_sens),
+       IW_HANDLER(SIOCGIWRANGE, ipw_wx_get_range),
+       IW_HANDLER(SIOCSIWAP, ipw_wx_set_wap),
+       IW_HANDLER(SIOCGIWAP, ipw_wx_get_wap),
+       IW_HANDLER(SIOCSIWSCAN, ipw_wx_set_scan),
+       IW_HANDLER(SIOCGIWSCAN, ipw_wx_get_scan),
+       IW_HANDLER(SIOCSIWESSID, ipw_wx_set_essid),
+       IW_HANDLER(SIOCGIWESSID, ipw_wx_get_essid),
+       IW_HANDLER(SIOCSIWNICKN, ipw_wx_set_nick),
+       IW_HANDLER(SIOCGIWNICKN, ipw_wx_get_nick),
+       IW_HANDLER(SIOCSIWRATE, ipw_wx_set_rate),
+       IW_HANDLER(SIOCGIWRATE, ipw_wx_get_rate),
+       IW_HANDLER(SIOCSIWRTS, ipw_wx_set_rts),
+       IW_HANDLER(SIOCGIWRTS, ipw_wx_get_rts),
+       IW_HANDLER(SIOCSIWFRAG, ipw_wx_set_frag),
+       IW_HANDLER(SIOCGIWFRAG, ipw_wx_get_frag),
+       IW_HANDLER(SIOCSIWTXPOW, ipw_wx_set_txpow),
+       IW_HANDLER(SIOCGIWTXPOW, ipw_wx_get_txpow),
+       IW_HANDLER(SIOCSIWRETRY, ipw_wx_set_retry),
+       IW_HANDLER(SIOCGIWRETRY, ipw_wx_get_retry),
+       IW_HANDLER(SIOCSIWENCODE, ipw_wx_set_encode),
+       IW_HANDLER(SIOCGIWENCODE, ipw_wx_get_encode),
+       IW_HANDLER(SIOCSIWPOWER, ipw_wx_set_power),
+       IW_HANDLER(SIOCGIWPOWER, ipw_wx_get_power),
+       IW_HANDLER(SIOCSIWSPY, iw_handler_set_spy),
+       IW_HANDLER(SIOCGIWSPY, iw_handler_get_spy),
+       IW_HANDLER(SIOCSIWTHRSPY, iw_handler_set_thrspy),
+       IW_HANDLER(SIOCGIWTHRSPY, iw_handler_get_thrspy),
+       IW_HANDLER(SIOCSIWGENIE, ipw_wx_set_genie),
+       IW_HANDLER(SIOCGIWGENIE, ipw_wx_get_genie),
+       IW_HANDLER(SIOCSIWMLME, ipw_wx_set_mlme),
+       IW_HANDLER(SIOCSIWAUTH, ipw_wx_set_auth),
+       IW_HANDLER(SIOCGIWAUTH, ipw_wx_get_auth),
+       IW_HANDLER(SIOCSIWENCODEEXT, ipw_wx_set_encodeext),
+       IW_HANDLER(SIOCGIWENCODEEXT, ipw_wx_get_encodeext),
 };
 
 enum {
@@ -11667,7 +11673,7 @@ static int ipw_prom_alloc(struct ipw_priv *priv)
        if (priv->prom_net_dev)
                return -EPERM;
 
-       priv->prom_net_dev = alloc_ieee80211(sizeof(struct ipw_prom_priv), 1);
+       priv->prom_net_dev = alloc_libipw(sizeof(struct ipw_prom_priv), 1);
        if (priv->prom_net_dev == NULL)
                return -ENOMEM;
 
@@ -11686,7 +11692,7 @@ static int ipw_prom_alloc(struct ipw_priv *priv)
 
        rc = register_netdev(priv->prom_net_dev);
        if (rc) {
-               free_ieee80211(priv->prom_net_dev, 1);
+               free_libipw(priv->prom_net_dev, 1);
                priv->prom_net_dev = NULL;
                return rc;
        }
@@ -11700,7 +11706,7 @@ static void ipw_prom_free(struct ipw_priv *priv)
                return;
 
        unregister_netdev(priv->prom_net_dev);
-       free_ieee80211(priv->prom_net_dev, 1);
+       free_libipw(priv->prom_net_dev, 1);
 
        priv->prom_net_dev = NULL;
 }
@@ -11728,7 +11734,7 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
        struct ipw_priv *priv;
        int i;
 
-       net_dev = alloc_ieee80211(sizeof(struct ipw_priv), 0);
+       net_dev = alloc_libipw(sizeof(struct ipw_priv), 0);
        if (net_dev == NULL) {
                err = -ENOMEM;
                goto out;
@@ -11748,7 +11754,7 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
        mutex_init(&priv->mutex);
        if (pci_enable_device(pdev)) {
                err = -ENODEV;
-               goto out_free_ieee80211;
+               goto out_free_libipw;
        }
 
        pci_set_master(pdev);
@@ -11875,8 +11881,8 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
       out_pci_disable_device:
        pci_disable_device(pdev);
        pci_set_drvdata(pdev, NULL);
-      out_free_ieee80211:
-       free_ieee80211(priv->net_dev, 0);
+      out_free_libipw:
+       free_libipw(priv->net_dev, 0);
       out:
        return err;
 }
@@ -11943,11 +11949,11 @@ static void __devexit ipw_pci_remove(struct pci_dev *pdev)
        pci_release_regions(pdev);
        pci_disable_device(pdev);
        pci_set_drvdata(pdev, NULL);
-       /* wiphy_unregister needs to be here, before free_ieee80211 */
+       /* wiphy_unregister needs to be here, before free_libipw */
        wiphy_unregister(priv->ieee->wdev.wiphy);
        kfree(priv->ieee->a_band.channels);
        kfree(priv->ieee->bg_band.channels);
-       free_ieee80211(priv->net_dev, 0);
+       free_libipw(priv->net_dev, 0);
        free_firmware();
 }