diff options
| author | Oliver Neukum <[email protected]> | 2007-03-06 09:47:04 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2007-03-10 03:52:25 +0000 |
| commit | 834dbca5b6b79ddb7cf56001ea7b6d4481fdf1e7 (patch) | |
| tree | db5e2ef6cd89b81a3a0706529415ba5966ba4049 /drivers/usb/class/cdc-acm.c | |
| parent | USB: fix Unaligned access in EHCI driver (diff) | |
| download | kernel-834dbca5b6b79ddb7cf56001ea7b6d4481fdf1e7.tar.gz kernel-834dbca5b6b79ddb7cf56001ea7b6d4481fdf1e7.zip | |
USB: fix spinlock recursion in cdc-acm.c
this fixes the spinlock recursion issue. The older fix was incomplete.
Signed-off-by: Oliver Neukum <[email protected]>
Acked-by: Pete Zaitcev <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index d38a25f36ea5..31ae661e586a 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -332,9 +332,9 @@ static void acm_rx_tasklet(unsigned long _acm) if (!ACM_READY(acm)) return; - spin_lock(&acm->throttle_lock); + spin_lock_irqsave(&acm->throttle_lock, flags); throttled = acm->throttle; - spin_unlock(&acm->throttle_lock); + spin_unlock_irqrestore(&acm->throttle_lock, flags); if (throttled) return; @@ -352,9 +352,9 @@ next_buffer: dbg("acm_rx_tasklet: procesing buf 0x%p, size = %d", buf, buf->size); tty_buffer_request_room(tty, buf->size); - spin_lock(&acm->throttle_lock); + spin_lock_irqsave(&acm->throttle_lock, flags); throttled = acm->throttle; - spin_unlock(&acm->throttle_lock); + spin_unlock_irqrestore(&acm->throttle_lock, flags); if (!throttled) tty_insert_flip_string(tty, buf->base, buf->size); tty_flip_buffer_push(tty); |
