From: Jiri Slaby Date: Sat, 10 Feb 2007 09:44:52 +0000 (-0800) Subject: [PATCH] Char: isicom, fix locking in isr X-Git-Tag: v2.6.21-rc1~274^2~366 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=174f13076717b8c7b70a18a474a0541a31d24527;p=~emulex%2Finfiniband.git [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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c index 26d3f78bf8e..c837ade1e80 100644 --- a/drivers/char/isicom.c +++ b/drivers/char/isicom.c @@ -564,6 +564,7 @@ static irqreturn_t isicom_interrupt(int irq, void *dev_id) port = card->ports + channel; if (!(port->flags & ASYNC_INITIALIZED)) { outw(0x0000, base+0x04); /* enable interrupts */ + spin_unlock(&card->card_lock); return IRQ_HANDLED; } @@ -678,6 +679,7 @@ static irqreturn_t isicom_interrupt(int irq, void *dev_id) tty_flip_buffer_push(tty); } outw(0x0000, base+0x04); /* enable interrupts */ + spin_unlock(&card->card_lock); return IRQ_HANDLED; }