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 ---