diff options
Diffstat (limited to 'drivers/net/usb/usbnet.c')
-rw-r--r-- | drivers/net/usb/usbnet.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 61ba46404937..6086a0163249 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c | |||
@@ -395,8 +395,11 @@ int usbnet_change_mtu (struct net_device *net, int new_mtu) | |||
395 | dev->hard_mtu = net->mtu + net->hard_header_len; | 395 | dev->hard_mtu = net->mtu + net->hard_header_len; |
396 | if (dev->rx_urb_size == old_hard_mtu) { | 396 | if (dev->rx_urb_size == old_hard_mtu) { |
397 | dev->rx_urb_size = dev->hard_mtu; | 397 | dev->rx_urb_size = dev->hard_mtu; |
398 | if (dev->rx_urb_size > old_rx_urb_size) | 398 | if (dev->rx_urb_size > old_rx_urb_size) { |
399 | usbnet_pause_rx(dev); | ||
399 | usbnet_unlink_rx_urbs(dev); | 400 | usbnet_unlink_rx_urbs(dev); |
401 | usbnet_resume_rx(dev); | ||
402 | } | ||
400 | } | 403 | } |
401 | 404 | ||
402 | /* max qlen depend on hard_mtu and rx_urb_size */ | 405 | /* max qlen depend on hard_mtu and rx_urb_size */ |
@@ -1508,8 +1511,9 @@ static void usbnet_bh (unsigned long param) | |||
1508 | } else if (netif_running (dev->net) && | 1511 | } else if (netif_running (dev->net) && |
1509 | netif_device_present (dev->net) && | 1512 | netif_device_present (dev->net) && |
1510 | netif_carrier_ok(dev->net) && | 1513 | netif_carrier_ok(dev->net) && |
1511 | !timer_pending (&dev->delay) && | 1514 | !timer_pending(&dev->delay) && |
1512 | !test_bit (EVENT_RX_HALT, &dev->flags)) { | 1515 | !test_bit(EVENT_RX_PAUSED, &dev->flags) && |
1516 | !test_bit(EVENT_RX_HALT, &dev->flags)) { | ||
1513 | int temp = dev->rxq.qlen; | 1517 | int temp = dev->rxq.qlen; |
1514 | 1518 | ||
1515 | if (temp < RX_QLEN(dev)) { | 1519 | if (temp < RX_QLEN(dev)) { |