[PATCH] usbcore: fixes for hub_port_resume
authorAlan Stern <stern@rowland.harvard.edu>
Wed, 28 Jun 2006 15:20:41 +0000 (11:20 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 Jul 2006 23:03:22 +0000 (16:03 -0700)
This patch (as731) makes a couple of small fixes to the hub_port_resume
routine:

Don't return status >= 0 when an error occurs;

Clear the port-change-suspend status indicator after
resuming a device.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/hub.c

index 41531bba4321ada9ed58745103c7fb083ca83fd0..26c8cb5f3e6722467379204762fb5d8a89b938a0 100644 (file)
@@ -1882,7 +1882,12 @@ hub_port_resume(struct usb_hub *hub, int port1, struct usb_device *udev)
                        dev_dbg(hub->intfdev,
                                "port %d status %04x.%04x after resume, %d\n",
                                port1, portchange, devstatus, status);
+                       if (status >= 0)
+                               status = -ENODEV;
                } else {
+                       if (portchange & USB_PORT_STAT_C_SUSPEND)
+                               clear_port_feature(hub->hdev, port1,
+                                               USB_PORT_FEAT_C_SUSPEND);
                        /* TRSMRCY = 10 msec */
                        msleep(10);
                        if (udev)