On Sun, 18 Aug 2013, Ming Lei wrote:
> Complete() will be run with interrupt enabled, so change to
> spin_lock_irqsave().
>
> Cc: Jiri Kosina
> Cc: linux-in...@vger.kernel.org
> Signed-off-by: Ming Lei
Acked-by: Jiri Kosina
> ---
> drivers/hid/usbhid/hid-core.c |5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
> index bd38cdf..2445fd6 100644
> --- a/drivers/hid/usbhid/hid-core.c
> +++ b/drivers/hid/usbhid/hid-core.c
> @@ -489,8 +489,9 @@ static void hid_ctrl(struct urb *urb)
> struct hid_device *hid = urb->context;
> struct usbhid_device *usbhid = hid->driver_data;
> int unplug = 0, status = urb->status;
> + unsigned long flags;
>
> - spin_lock(&usbhid->lock);
> + spin_lock_irqsave(&usbhid->lock, flags);
>
> switch (status) {
> case 0: /* success */
> @@ -525,7 +526,7 @@ static void hid_ctrl(struct urb *urb)
> }
>
> clear_bit(HID_CTRL_RUNNING, &usbhid->iofl);
> - spin_unlock(&usbhid->lock);
> + spin_unlock_irqrestore(&usbhid->lock, flags);
> usb_autopm_put_interface_async(usbhid->intf);
> wake_up(&usbhid->wait);
> }
>
--
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html