Re: [PATCH net v2 2/2] r8152: reset device when tx timeout

From: Oliver Neukum
Date: Tue Jul 28 2015 - 08:15:22 EST


On Tue, 2015-07-28 at 20:08 +0800, Hayes Wang wrote:
> static void rtl8152_tx_timeout(struct net_device *netdev)
> {
> struct r8152 *tp = netdev_priv(netdev);
> - int i;
>
> netif_warn(tp, tx_err, netdev, "Tx timeout\n");
> - for (i = 0; i < RTL8152_MAX_TX; i++)
> - usb_unlink_urb(tp->tx_info[i].urb);
> +
> + usb_queue_reset_device(tp->intf);
> + cancel_delayed_work(&tp->schedule);

Sorry to bother you again, but this looks wrong.
You want to cancel first. There is no point in
running any work before the reset is done. It will
undo any progress anyway.

Regards
Oliver


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/