Search Linux Wireless

[PATCH 16/35] Don't disable and enable tasklets, it doesn't work as expected

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bringing the interface down causes high CPU utilization.  Correct fix
should probably disable rx URB, not only the rx tasklet.

Signed-off-by: Pavel Roskin <proski@xxxxxxx>
---

 drivers/net/wireless/at76_usb.c |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)


diff --git a/drivers/net/wireless/at76_usb.c b/drivers/net/wireless/at76_usb.c
index 5577606..218641e 100644
--- a/drivers/net/wireless/at76_usb.c
+++ b/drivers/net/wireless/at76_usb.c
@@ -3445,7 +3445,6 @@ static int at76_open(struct net_device *netdev)
 		goto error;
 	}
 
-	tasklet_enable(&priv->rx_tasklet);
 	schedule_delayed_work(&priv->dwork_restart, 0);
 
 	at76_dbg(DBG_PROC_ENTRY, "%s(): end", __func__);
@@ -3463,7 +3462,6 @@ static int at76_stop(struct net_device *netdev)
 	if (mutex_lock_interruptible(&priv->mtx))
 		return -EINTR;
 
-	tasklet_disable(&priv->rx_tasklet);
 	at76_quiesce(priv);
 
 	if (!priv->device_unplugged) {
@@ -5375,7 +5373,6 @@ static struct at76_priv *at76_alloc_new_device(struct usb_device *udev)
 
 	priv->rx_tasklet.func = at76_rx_tasklet;
 	priv->rx_tasklet.data = 0;
-	tasklet_disable(&priv->rx_tasklet);
 
 	priv->pm_mode = AT76_PM_OFF;
 	priv->pm_period = 0;
@@ -5535,8 +5532,6 @@ static void at76_delete_device(struct at76_priv *priv)
 	/* The device is gone, don't bother turning it off */
 	priv->device_unplugged = 1;
 
-	tasklet_kill(&priv->rx_tasklet);
-
 	if (priv->netdev_registered)
 		unregister_netdev(priv->netdev);
 
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux