r8152: reset device when tx timeout
The device reset is necessary if the hw becomes abnormal and stops transmitting packets. Signed-off-by: Hayes Wang <hayeswang@realtek.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e501139a51
commit
37608f3e57
1 changed files with 3 additions and 4 deletions
|
@ -27,7 +27,7 @@
|
||||||
#include <linux/usb/cdc.h>
|
#include <linux/usb/cdc.h>
|
||||||
|
|
||||||
/* Version Information */
|
/* Version Information */
|
||||||
#define DRIVER_VERSION "v1.08.0 (2015/01/13)"
|
#define DRIVER_VERSION "v1.08.1 (2015/07/28)"
|
||||||
#define DRIVER_AUTHOR "Realtek linux nic maintainers <nic_swsd@realtek.com>"
|
#define DRIVER_AUTHOR "Realtek linux nic maintainers <nic_swsd@realtek.com>"
|
||||||
#define DRIVER_DESC "Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"
|
#define DRIVER_DESC "Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"
|
||||||
#define MODULENAME "r8152"
|
#define MODULENAME "r8152"
|
||||||
|
@ -1902,11 +1902,10 @@ static void rtl_drop_queued_tx(struct r8152 *tp)
|
||||||
static void rtl8152_tx_timeout(struct net_device *netdev)
|
static void rtl8152_tx_timeout(struct net_device *netdev)
|
||||||
{
|
{
|
||||||
struct r8152 *tp = netdev_priv(netdev);
|
struct r8152 *tp = netdev_priv(netdev);
|
||||||
int i;
|
|
||||||
|
|
||||||
netif_warn(tp, tx_err, netdev, "Tx timeout\n");
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtl8152_set_rx_mode(struct net_device *netdev)
|
static void rtl8152_set_rx_mode(struct net_device *netdev)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue