|
@@ -645,6 +645,7 @@ int usbnet_stop (struct net_device *net)
|
|
struct driver_info *info = dev->driver_info;
|
|
struct driver_info *info = dev->driver_info;
|
|
int retval;
|
|
int retval;
|
|
|
|
|
|
|
|
+ clear_bit(EVENT_DEV_OPEN, &dev->flags);
|
|
netif_stop_queue (net);
|
|
netif_stop_queue (net);
|
|
|
|
|
|
netif_info(dev, ifdown, dev->net,
|
|
netif_info(dev, ifdown, dev->net,
|
|
@@ -1524,9 +1525,12 @@ int usbnet_resume (struct usb_interface *intf)
|
|
smp_mb();
|
|
smp_mb();
|
|
clear_bit(EVENT_DEV_ASLEEP, &dev->flags);
|
|
clear_bit(EVENT_DEV_ASLEEP, &dev->flags);
|
|
spin_unlock_irq(&dev->txq.lock);
|
|
spin_unlock_irq(&dev->txq.lock);
|
|
- if (!(dev->txq.qlen >= TX_QLEN(dev)))
|
|
|
|
- netif_start_queue(dev->net);
|
|
|
|
- tasklet_schedule (&dev->bh);
|
|
|
|
|
|
+
|
|
|
|
+ if (test_bit(EVENT_DEV_OPEN, &dev->flags)) {
|
|
|
|
+ if (!(dev->txq.qlen >= TX_QLEN(dev)))
|
|
|
|
+ netif_start_queue(dev->net);
|
|
|
|
+ tasklet_schedule (&dev->bh);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|