summaryrefslogtreecommitdiff
path: root/drivers/tty/serial/sprd_serial.c
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2015-02-16 22:39:04 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-03-07 03:39:55 +0100
commitc4e6dcfa00dab9b10e75bba835393b81f256310b (patch)
treea3b2c8c3e0717f871200cf6ab30c1c97e9805178 /drivers/tty/serial/sprd_serial.c
parent30a22c215a0007603ffc08021f2e8b64018517dd (diff)
serial: sprd: Fix missing spin_unlock in sprd_handle_irq()
Fix return from sprd_handle_irq() with spin_lock held. Signed-off-by: Axel Lin <axel.lin@ingics.com> Reviewed-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/sprd_serial.c')
-rw-r--r--drivers/tty/serial/sprd_serial.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c
index 594b63331ef4..bca975f5093b 100644
--- a/drivers/tty/serial/sprd_serial.c
+++ b/drivers/tty/serial/sprd_serial.c
@@ -293,8 +293,10 @@ static irqreturn_t sprd_handle_irq(int irq, void *dev_id)
ims = serial_in(port, SPRD_IMSR);
- if (!ims)
+ if (!ims) {
+ spin_unlock(&port->lock);
return IRQ_NONE;
+ }
serial_out(port, SPRD_ICLR, ~0);