|
@@ -403,9 +403,10 @@ static void hub_tt_kevent (struct work_struct *work)
|
|
struct usb_hub *hub =
|
|
struct usb_hub *hub =
|
|
container_of(work, struct usb_hub, tt.kevent);
|
|
container_of(work, struct usb_hub, tt.kevent);
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
+ int limit = 100;
|
|
|
|
|
|
spin_lock_irqsave (&hub->tt.lock, flags);
|
|
spin_lock_irqsave (&hub->tt.lock, flags);
|
|
- while (!list_empty (&hub->tt.clear_list)) {
|
|
|
|
|
|
+ while (--limit && !list_empty (&hub->tt.clear_list)) {
|
|
struct list_head *temp;
|
|
struct list_head *temp;
|
|
struct usb_tt_clear *clear;
|
|
struct usb_tt_clear *clear;
|
|
struct usb_device *hdev = hub->hdev;
|
|
struct usb_device *hdev = hub->hdev;
|