[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: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
02d3fca092
commit
174f130767
@@ -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)
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user