Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1236edf1 authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman
Browse files

USB: don't lose disconnections during suspend



This patch (as1111) fixes a bug in the hub driver.  When a hub
resumes, disconnections that occurred while the hub was suspended are
lost.

A completely different fix for this problem has already been accepted
for 2.6.27; however the problem still needs to be handled in 2.6.26.

Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Tested-by: default avatarLukas Hejtmanek <xhejtman@ics.muni.cz>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent de85422b
Loading
Loading
Loading
Loading
+4 −11
Original line number Diff line number Diff line
@@ -713,18 +713,11 @@ static void hub_restart(struct usb_hub *hub, int type)
		}

		/* Was the power session lost while we were suspended? */
		switch (type) {
		case HUB_RESET_RESUME:
			portstatus = 0;
			portchange = USB_PORT_STAT_C_CONNECTION;
			break;
		status = hub_port_status(hub, port1, &portstatus, &portchange);

		case HUB_RESET:
		case HUB_RESUME:
			status = hub_port_status(hub, port1,
					&portstatus, &portchange);
			break;
		}
		/* If the device is gone, khubd will handle it later */
		if (status == 0 && !(portstatus & USB_PORT_STAT_CONNECTION))
			continue;

		/* For "USB_PERSIST"-enabled children we must
		 * mark the child device for reset-resume and