usbnet.c (b3bbcc5d1da1b654091dad15980b3d58fdae0fc6) | usbnet.c (a43206156263fbaf1f2b7f96257441f331e91bb7) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * USB Network driver infrastructure 4 * Copyright (C) 2000-2005 by David Brownell 5 * Copyright (C) 2003-2005 David Hollis <dhollis@davehollis.com> 6 */ 7 8/* --- 1584 unchanged lines hidden (view full) --- 1593 1594// precondition: never called in_interrupt 1595 1596void usbnet_disconnect (struct usb_interface *intf) 1597{ 1598 struct usbnet *dev; 1599 struct usb_device *xdev; 1600 struct net_device *net; | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * USB Network driver infrastructure 4 * Copyright (C) 2000-2005 by David Brownell 5 * Copyright (C) 2003-2005 David Hollis <dhollis@davehollis.com> 6 */ 7 8/* --- 1584 unchanged lines hidden (view full) --- 1593 1594// precondition: never called in_interrupt 1595 1596void usbnet_disconnect (struct usb_interface *intf) 1597{ 1598 struct usbnet *dev; 1599 struct usb_device *xdev; 1600 struct net_device *net; |
1601 struct urb *urb; |
|
1601 1602 dev = usb_get_intfdata(intf); 1603 usb_set_intfdata(intf, NULL); 1604 if (!dev) 1605 return; 1606 1607 xdev = interface_to_usbdev (intf); 1608 1609 netif_info(dev, probe, dev->net, "unregister '%s' usb-%s-%s, %s\n", 1610 intf->dev.driver->name, 1611 xdev->bus->bus_name, xdev->devpath, 1612 dev->driver_info->description); 1613 1614 net = dev->net; 1615 unregister_netdev (net); 1616 | 1602 1603 dev = usb_get_intfdata(intf); 1604 usb_set_intfdata(intf, NULL); 1605 if (!dev) 1606 return; 1607 1608 xdev = interface_to_usbdev (intf); 1609 1610 netif_info(dev, probe, dev->net, "unregister '%s' usb-%s-%s, %s\n", 1611 intf->dev.driver->name, 1612 xdev->bus->bus_name, xdev->devpath, 1613 dev->driver_info->description); 1614 1615 net = dev->net; 1616 unregister_netdev (net); 1617 |
1617 usb_scuttle_anchored_urbs(&dev->deferred); | 1618 while ((urb = usb_get_from_anchor(&dev->deferred))) { 1619 dev_kfree_skb(urb->context); 1620 kfree(urb->sg); 1621 usb_free_urb(urb); 1622 } |
1618 1619 if (dev->driver_info->unbind) 1620 dev->driver_info->unbind(dev, intf); 1621 1622 usb_kill_urb(dev->interrupt); 1623 usb_free_urb(dev->interrupt); 1624 kfree(dev->padding_pkt); 1625 --- 591 unchanged lines hidden --- | 1623 1624 if (dev->driver_info->unbind) 1625 dev->driver_info->unbind(dev, intf); 1626 1627 usb_kill_urb(dev->interrupt); 1628 usb_free_urb(dev->interrupt); 1629 kfree(dev->padding_pkt); 1630 --- 591 unchanged lines hidden --- |