mwl8k: no need to hold ->tx_lock while setting the hardware interrupt mask
authorLennert Buytenhek <buytenh@wantstofly.org>
Tue, 18 Aug 2009 02:19:00 +0000 (04:19 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 20 Aug 2009 15:38:07 +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 0281e70..177d92f 100644 (file)
@@ -2768,9 +2768,7 @@ static void mwl8k_stop(struct ieee80211_hw *hw)
                printk(KERN_ERR "%s() timed out\n", __func__);
 
        /* Disable interrupts */
                printk(KERN_ERR "%s() timed out\n", __func__);
 
        /* Disable interrupts */
-       spin_lock_irq(&priv->tx_lock);
        iowrite32(0, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
        iowrite32(0, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
-       spin_unlock_irq(&priv->tx_lock);
        free_irq(priv->pdev->irq, hw);
 
        /* Stop finalize join worker */
        free_irq(priv->pdev->irq, hw);
 
        /* Stop finalize join worker */
@@ -3457,9 +3455,7 @@ static int __devinit mwl8k_probe(struct pci_dev *pdev,
        }
 
        /* Disable interrupts */
        }
 
        /* Disable interrupts */
-       spin_lock_irq(&priv->tx_lock);
        iowrite32(0, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
        iowrite32(0, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
-       spin_unlock_irq(&priv->tx_lock);
        free_irq(priv->pdev->irq, hw);
 
        rc = ieee80211_register_hw(hw);
        free_irq(priv->pdev->irq, hw);
 
        rc = ieee80211_register_hw(hw);
@@ -3483,9 +3479,7 @@ err_stop_firmware:
        mwl8k_release_firmware(priv);
 
 err_free_irq:
        mwl8k_release_firmware(priv);
 
 err_free_irq:
-       spin_lock_irq(&priv->tx_lock);
        iowrite32(0, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
        iowrite32(0, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
-       spin_unlock_irq(&priv->tx_lock);
        free_irq(priv->pdev->irq, hw);
 
 err_free_queues:
        free_irq(priv->pdev->irq, hw);
 
 err_free_queues: