Re: [PATCH v1 23/49] hid: usbhid: prepare for enabling irq in complete()
From: Jiri Kosina <hidden>
Date: 2013-08-26 11:44:54
On Sun, 18 Aug 2013, Ming Lei wrote:
Complete() will be run with interrupt enabled, so change to spin_lock_irqsave(). Cc: Jiri Kosina <redacted> Cc: linux-input@vger.kernel.org Signed-off-by: Ming Lei <redacted>
Acked-by: Jiri Kosina <redacted>
quoted hunk ↗ jump to hunk
--- 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