Re: [patch]fix lockup of hid on reset

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

 



On Sun, 22 Mar 2009, Oliver Neukum wrote:

> 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
> 		Oliver
> diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
> index 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;

Applied to autosuspend branch, thanks a lot Oliver.

-- 
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

  Powered by Linux