[patch]fix lockup of hid on reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This fixes a use of flush_scheduled_work() in USB HID's  reset logic that can deadlock. It's against the next tree.
Signed-off-by: Oliver Neukum <oliver@xxxxxxxxxxx>Tested-by: Valdis Kletniks <Valdis.Kletnieks@xxxxxx>	Regards		Oliverdiff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.cindex bc017cd..4306cb1 100644--- a/drivers/hid/usbhid/hid-core.c+++ b/drivers/hid/usbhid/hid-core.c@@ -1210,7 +1210,6 @@ static void hid_cease_io(struct usbhid_device *usbhid) 	usb_kill_urb(usbhid->urbin); 	usb_kill_urb(usbhid->urbctrl); 	usb_kill_urb(usbhid->urbout);-	flush_scheduled_work(); }  /* Treat USB reset pretty much the same as suspend/resume */@@ -1222,6 +1221,7 @@ static int hid_pre_reset(struct usb_interface *intf) 	spin_lock_irq(&usbhid->lock); 	set_bit(HID_RESET_PENDING, &usbhid->iofl); 	spin_unlock_irq(&usbhid->lock);+	cancel_work_sync(&usbhid->restart_work); 	hid_cease_io(usbhid);  	return 0;
��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux