diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-10-29 12:04:39 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-10-29 12:04:39 -0400 |
commit | b472b8e22f9f9bc88dc73017d61609684289fb13 (patch) | |
tree | cbb2ec0c2fd2cf6d9f4d2e323e97aa757bd93c59 /drivers/usb/core | |
parent | d124a60dbbe7c12f3871e2c7fc71f98a821ee9a8 (diff) | |
parent | 8f0d8163b50e01f398b14bcd4dc039ac5ab18d64 (diff) |
Merge 3.7-rc3 into usb-next.
This pulls in all of the USB changes in 3.7-rc3 into usb-next and
resolves the merge issue with:
drivers/usb/misc/ezusb.c
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/core')
-rw-r--r-- | drivers/usb/core/hub.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 43ce1467f8c0..5b131b6477db 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
@@ -744,13 +744,16 @@ static void hub_tt_work(struct work_struct *work) | |||
744 | int limit = 100; | 744 | int limit = 100; |
745 | 745 | ||
746 | spin_lock_irqsave (&hub->tt.lock, flags); | 746 | spin_lock_irqsave (&hub->tt.lock, flags); |
747 | while (--limit && !list_empty (&hub->tt.clear_list)) { | 747 | while (!list_empty(&hub->tt.clear_list)) { |
748 | struct list_head *next; | 748 | struct list_head *next; |
749 | struct usb_tt_clear *clear; | 749 | struct usb_tt_clear *clear; |
750 | struct usb_device *hdev = hub->hdev; | 750 | struct usb_device *hdev = hub->hdev; |
751 | const struct hc_driver *drv; | 751 | const struct hc_driver *drv; |
752 | int status; | 752 | int status; |
753 | 753 | ||
754 | if (!hub->quiescing && --limit < 0) | ||
755 | break; | ||
756 | |||
754 | next = hub->tt.clear_list.next; | 757 | next = hub->tt.clear_list.next; |
755 | clear = list_entry (next, struct usb_tt_clear, clear_list); | 758 | clear = list_entry (next, struct usb_tt_clear, clear_list); |
756 | list_del (&clear->clear_list); | 759 | list_del (&clear->clear_list); |
@@ -1215,7 +1218,7 @@ static void hub_quiesce(struct usb_hub *hub, enum hub_quiescing_type type) | |||
1215 | if (hub->has_indicators) | 1218 | if (hub->has_indicators) |
1216 | cancel_delayed_work_sync(&hub->leds); | 1219 | cancel_delayed_work_sync(&hub->leds); |
1217 | if (hub->tt.hub) | 1220 | if (hub->tt.hub) |
1218 | cancel_work_sync(&hub->tt.clear_work); | 1221 | flush_work(&hub->tt.clear_work); |
1219 | } | 1222 | } |
1220 | 1223 | ||
1221 | /* caller has locked the hub device */ | 1224 | /* caller has locked the hub device */ |