/* Notes : caller has locked the hub device  */
static void hub_pre_reset(struct usb_hub *hub)
/* Notes : caller has locked the hub device  */
static void hub_pre_reset(struct usb_hub *hub)
{
    struct usb_host_virt_dev  *hdev = hub->hdev;
    int i;
    for (i = 0; i < hdev->maxchild; ++i)
    {
        if (hdev->children[i])
        {
            usb_disconnect(&hdev->children[i]);
        }
    }
    hub_quiesce(hub);
}