Commit 174f1307 authored by Jiri Slaby's avatar Jiri Slaby Committed by Linus Torvalds

[PATCH] Char: isicom, fix locking in isr

2 spin_unlocks are omitted in the interrupt handler.  Put them there to fix up
deadlocking on UP.
Signed-off-by: default avatarJiri Slaby <jirislaby@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 02d3fca0
...@@ -564,6 +564,7 @@ static irqreturn_t isicom_interrupt(int irq, void *dev_id) ...@@ -564,6 +564,7 @@ static irqreturn_t isicom_interrupt(int irq, void *dev_id)
port = card->ports + channel; port = card->ports + channel;
if (!(port->flags & ASYNC_INITIALIZED)) { if (!(port->flags & ASYNC_INITIALIZED)) {
outw(0x0000, base+0x04); /* enable interrupts */ outw(0x0000, base+0x04); /* enable interrupts */
spin_unlock(&card->card_lock);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
...@@ -678,6 +679,7 @@ static irqreturn_t isicom_interrupt(int irq, void *dev_id) ...@@ -678,6 +679,7 @@ static irqreturn_t isicom_interrupt(int irq, void *dev_id)
tty_flip_buffer_push(tty); tty_flip_buffer_push(tty);
} }
outw(0x0000, base+0x04); /* enable interrupts */ outw(0x0000, base+0x04); /* enable interrupts */
spin_unlock(&card->card_lock);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment