Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

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.