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