Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[sfrench/cifs-2.6.git] / drivers / net / wireless / ipw2x00 / ipw2200.c
index 5c7aa1b1eb566e0bac134294874ffcadd3366a39..9e2ae8f3ecb0e9bef38ba80af3067d4747528b9a 100644 (file)
@@ -458,7 +458,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;
 }
@@ -472,7 +472,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;
 }
 
@@ -2348,16 +2348,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);
        }
 }
 
@@ -2738,7 +2747,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);
@@ -2746,7 +2755,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;
 }
 
@@ -2761,7 +2770,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,
@@ -2812,29 +2821,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");
 }
@@ -2850,7 +2859,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");
@@ -2909,7 +2918,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);
 
@@ -2926,7 +2935,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;
 }
 
@@ -2935,7 +2944,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",
@@ -2964,7 +2973,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;
 }
 
@@ -3025,7 +3034,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);
 
@@ -3044,7 +3053,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);
@@ -3066,7 +3075,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);
 
@@ -3180,7 +3189,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);
@@ -4481,7 +4490,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);
@@ -4562,7 +4571,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,
@@ -4613,7 +4622,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);
@@ -4651,7 +4660,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);
@@ -6924,7 +6933,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;
 }
 
@@ -6964,7 +6973,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);
                }
 
@@ -7541,7 +7550,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);
 
@@ -8792,7 +8801,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);
@@ -8834,7 +8843,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;
 }
 
@@ -9229,7 +9238,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;
@@ -9357,7 +9366,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;
 }
 
@@ -9380,7 +9389,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;
 }
 
@@ -9394,7 +9403,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;
 }
 
@@ -9444,7 +9453,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;
@@ -9470,7 +9479,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;
 }
 
@@ -9484,7 +9493,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;
 }
@@ -9548,7 +9557,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;
 }
@@ -9995,49 +10004,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 {
@@ -11666,7 +11674,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;
 
@@ -11685,7 +11693,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;
        }
@@ -11699,7 +11707,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;
 }
@@ -11727,7 +11735,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;
@@ -11747,7 +11755,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);
@@ -11874,8 +11882,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;
 }
@@ -11942,11 +11950,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();
 }