mwl8k: get rid of mwl8k_stop() workqueue use
authorLennert Buytenhek <buytenh@wantstofly.org>
Fri, 17 Jul 2009 05:15:49 +0000 (07:15 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 20 Aug 2009 15:38:09 +0000 (11:38 -0400)
Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwl8k.c

index 7b7007d..b88b1e0 100644 (file)
@@ -2540,39 +2540,15 @@ static int mwl8k_start(struct ieee80211_hw *hw)
        return rc;
 }
 
        return rc;
 }
 
-struct mwl8k_stop_worker {
-       struct mwl8k_work_struct header;
-};
-
-static int mwl8k_stop_wt(struct work_struct *wt)
-{
-       struct mwl8k_stop_worker *worker = (struct mwl8k_stop_worker *)wt;
-       struct ieee80211_hw *hw = worker->header.hw;
-
-       return mwl8k_cmd_802_11_radio_disable(hw);
-}
-
 static void mwl8k_stop(struct ieee80211_hw *hw)
 {
 static void mwl8k_stop(struct ieee80211_hw *hw)
 {
-       int rc;
-       struct mwl8k_stop_worker *worker;
        struct mwl8k_priv *priv = hw->priv;
        int i;
 
        struct mwl8k_priv *priv = hw->priv;
        int i;
 
-       if (priv->vif != NULL)
-               return;
+       mwl8k_cmd_802_11_radio_disable(hw);
 
        ieee80211_stop_queues(hw);
 
 
        ieee80211_stop_queues(hw);
 
-       worker = kzalloc(sizeof(*worker), GFP_KERNEL);
-       if (worker == NULL)
-               return;
-
-       rc = mwl8k_queue_work(hw, &worker->header, mwl8k_stop_wt);
-       kfree(worker);
-       if (rc == -ETIMEDOUT)
-               printk(KERN_ERR "%s() timed out\n", __func__);
-
        /* Disable interrupts */
        iowrite32(0, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
        free_irq(priv->pdev->irq, hw);
        /* Disable interrupts */
        iowrite32(0, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
        free_irq(priv->pdev->irq, hw);