Hendrik,

Please try this patch.

Thanks,

Larry


Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -3250,11 +3250,11 @@ static void bcm43xx_periodic_work_handle

        mutex_lock(&bcm->mutex);
        badness = estimate_periodic_work_badness(bcm->periodic_state);
+       netif_tx_disable(bcm->net_dev);
        if (badness > BADNESS_LIMIT) {
                /* Periodic work will take a long time, so we want it to
                 * be preemtible.
                 */
-               netif_tx_disable(bcm->net_dev);
                spin_lock_irqsave(&bcm->irq_lock, flags);
                bcm43xx_mac_suspend(bcm);
                if (bcm43xx_using_pio(bcm))
@@ -3278,10 +3286,10 @@ static void bcm43xx_periodic_work_handle
                if (bcm43xx_using_pio(bcm))
                        bcm43xx_pio_thaw_txqueues(bcm);
                bcm43xx_mac_enable(bcm);
-               netif_wake_queue(bcm->net_dev);
        }
        mmiowb();
        spin_unlock_irqrestore(&bcm->irq_lock, flags);
+       netif_wake_queue(bcm->net_dev);
        mutex_unlock(&bcm->mutex);
  }


_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to