USB_DISCONNECT(9)

NAME
usb_disconnect - disconnect a device (usbcore-internal)

SYNOPSIS

void usb_disconnect (struct usb_device ** pdev);

ARGUMENTS

pdev
    pointer to device being disconnected

CONTEXT

!in_interrupt ()

DESCRIPTION

Something got disconnected. Get rid of it and all of its children.

If *pdev is a normal device then the parent hub must already be locked. If *pdev is a root hub then this routine will acquire the usb_bus_list_lock on behalf of the caller.

Only hub drivers (including virtual root hub drivers for host controllers) should ever call this.

This call is synchronous, and may not be used in an interrupt context.