aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/usb
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/usb')
-rw-r--r--drivers/net/usb/smsc95xx.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index 262e7a3c23cb..f2d01cb6f958 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1321,6 +1321,8 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
1321 dev->net->ethtool_ops = &smsc95xx_ethtool_ops; 1321 dev->net->ethtool_ops = &smsc95xx_ethtool_ops;
1322 dev->net->flags |= IFF_MULTICAST; 1322 dev->net->flags |= IFF_MULTICAST;
1323 dev->net->hard_header_len += SMSC95XX_TX_OVERHEAD_CSUM; 1323 dev->net->hard_header_len += SMSC95XX_TX_OVERHEAD_CSUM;
1324 dev->net->min_mtu = ETH_MIN_MTU;
1325 dev->net->max_mtu = ETH_DATA_LEN;
1324 dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len; 1326 dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
1325 1327
1326 pdata->dev = dev; 1328 pdata->dev = dev;
@@ -1598,6 +1600,8 @@ static int smsc95xx_suspend(struct usb_interface *intf, pm_message_t message)
1598 return ret; 1600 return ret;
1599 } 1601 }
1600 1602
1603 cancel_delayed_work_sync(&pdata->carrier_check);
1604
1601 if (pdata->suspend_flags) { 1605 if (pdata->suspend_flags) {
1602 netdev_warn(dev->net, "error during last resume\n"); 1606 netdev_warn(dev->net, "error during last resume\n");
1603 pdata->suspend_flags = 0; 1607 pdata->suspend_flags = 0;
@@ -1840,6 +1844,11 @@ done:
1840 */ 1844 */
1841 if (ret && PMSG_IS_AUTO(message)) 1845 if (ret && PMSG_IS_AUTO(message))
1842 usbnet_resume(intf); 1846 usbnet_resume(intf);
1847
1848 if (ret)
1849 schedule_delayed_work(&pdata->carrier_check,
1850 CARRIER_CHECK_DELAY);
1851
1843 return ret; 1852 return ret;
1844} 1853}
1845 1854