ieee80211_send_probe_requests(ieee);
 
 
-       queue_delayed_work(ieee->wq, &ieee->softmac_scan_wq, IEEE80211_SOFTMAC_SCAN_TIME);
+       schedule_delayed_work(&ieee->softmac_scan_wq, IEEE80211_SOFTMAC_SCAN_TIME);
 
        up(&ieee->scan_sem);
        return;
        if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){
                if (ieee->scanning == 0) {
                        ieee->scanning = 1;
-                       queue_delayed_work(ieee->wq, &ieee->softmac_scan_wq, 0);
+                       schedule_delayed_work(&ieee->softmac_scan_wq, 0);
                }
        }else
                ieee->start_scan(ieee->dev);
 
        ieee->state = IEEE80211_ASSOCIATING_RETRY;
 
-       queue_delayed_work(ieee->wq, &ieee->associate_retry_wq, \
+       schedule_delayed_work(&ieee->associate_retry_wq, \
                           IEEE80211_SOFTMAC_ASSOC_RETRY_TIME);
 
        spin_unlock_irqrestore(&ieee->lock, flags);
 
        ieee->state = IEEE80211_LINKED;
        //ieee->UpdateHalRATRTableHandler(dev, ieee->dot11HTOperationalRateSet);
-       queue_work(ieee->wq, &ieee->associate_complete_wq);
+       schedule_work(&ieee->associate_complete_wq);
 }
 
 static void ieee80211_associate_procedure_wq(struct work_struct *work)
                                        }
 
                                        ieee->state = IEEE80211_ASSOCIATING;
-                                       queue_work(ieee->wq, &ieee->associate_procedure_wq);
+                                       schedule_work(&ieee->associate_procedure_wq);
                                }else{
                                        if(ieee80211_is_54g(&ieee->current_network) &&
                                                (ieee->modulation & IEEE80211_OFDM_MODULATION)){
                                        "Association response status code 0x%x\n",
                                        errcode);
                                if(ieee->AsocRetryCount < RT_ASOC_RETRY_LIMIT) {
-                                       queue_work(ieee->wq, &ieee->associate_procedure_wq);
+                                       schedule_work(&ieee->associate_procedure_wq);
                                } else {
                                        ieee80211_associate_abort(ieee);
                                }
                        notify_wx_assoc_event(ieee);
                        //HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
                        RemovePeerTS(ieee, header->addr2);
-                       queue_work(ieee->wq, &ieee->associate_procedure_wq);
+                       schedule_work(&ieee->associate_procedure_wq);
                }
                break;
        case IEEE80211_STYPE_MANAGE_ACT:
 
 inline void ieee80211_start_ibss(struct ieee80211_device *ieee)
 {
-       queue_delayed_work(ieee->wq, &ieee->start_ibss_wq, 150);
+       schedule_delayed_work(&ieee->start_ibss_wq, 150);
 }
 
 /* this is called only in user context, with wx_sem held */
        setup_timer(&ieee->beacon_timer, ieee80211_send_beacon_cb,
                    (unsigned long)ieee);
 
-       ieee->wq = create_workqueue(DRV_NAME);
 
        INIT_DELAYED_WORK(&ieee->start_ibss_wq, ieee80211_start_ibss_wq);
        INIT_WORK(&ieee->associate_complete_wq, ieee80211_associate_complete_wq);
        del_timer_sync(&ieee->associate_timer);
 
        cancel_delayed_work(&ieee->associate_retry_wq);
-       destroy_workqueue(ieee->wq);
 
        up(&ieee->wx_sem);
 }
 
                     network->qos_data.param_count)) {
                        network->qos_data.old_param_count =
                                network->qos_data.param_count;
-                       queue_work(priv->priv_wq, &priv->qos_activate);
+                       schedule_work(&priv->qos_activate);
                        RT_TRACE(COMP_QOS,
                                 "QoS parameters change call qos_activate\n");
                }
                       &def_qos_parameters, size);
 
                if ((network->qos_data.active == 1) && (active_network == 1)) {
-                       queue_work(priv->priv_wq, &priv->qos_activate);
+                       schedule_work(&priv->qos_activate);
                        RT_TRACE(COMP_QOS,
                                 "QoS was disabled call qos_activate\n");
                }
        struct r8192_priv *priv = ieee80211_priv(dev);
 
        rtl8192_qos_handle_probe_response(priv, 1, network);
-       queue_delayed_work(priv->priv_wq, &priv->update_beacon_wq, 0);
+       schedule_delayed_work(&priv->update_beacon_wq, 0);
        return 0;
 
 }
                 network->flags,
                 priv->ieee80211->current_network.qos_data.active);
        if (set_qos_param == 1)
-               queue_work(priv->priv_wq, &priv->qos_activate);
+               schedule_work(&priv->qos_activate);
 
 
        return 0;
 {
        struct r8192_priv *priv = ieee80211_priv(dev);
 
-       priv->priv_wq = create_workqueue(DRV_NAME);
 
        INIT_WORK(&priv->reset_wq, rtl8192_restart);
 
 {
        struct r8192_priv *priv = ieee80211_priv((struct net_device *)data);
 
-       queue_delayed_work(priv->priv_wq, &priv->watch_dog_wq, 0);
+       schedule_delayed_work(&priv->watch_dog_wq, 0);
        mod_timer(&priv->watch_dog_timer,
                  jiffies + msecs_to_jiffies(IEEE80211_WATCH_DOG_TIME));
 }
        kfree(priv->pFirmware);
        priv->pFirmware = NULL;
        rtl8192_usb_deleteendpoints(dev);
-       destroy_workqueue(priv->priv_wq);
        mdelay(10);
 fail:
        free_ieee80211(dev);
                kfree(priv->pFirmware);
                priv->pFirmware = NULL;
                rtl8192_usb_deleteendpoints(dev);
-               destroy_workqueue(priv->priv_wq);
                mdelay(10);
        }
        free_ieee80211(dev);