summaryrefslogtreecommitdiff
path: root/arch/um/drivers
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-02-11 03:05:32 -0500
committerRichard Weinberger <richard@nod.at>2012-03-25 00:29:56 +0100
commit199eebbae45791af0f37184dd495f16a6cf5c34a (patch)
tree473834d6b21fa9e54d5deb158b54f78a984f7bc4 /arch/um/drivers
parent64405360cee33a058d7e07713af23aca43b96d41 (diff)
downloadlinux-3.10-199eebbae45791af0f37184dd495f16a6cf5c34a.tar.gz
linux-3.10-199eebbae45791af0f37184dd495f16a6cf5c34a.tar.bz2
linux-3.10-199eebbae45791af0f37184dd495f16a6cf5c34a.zip
um: deadlock in line_write_interrupt()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um/drivers')
-rw-r--r--arch/um/drivers/line.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c
index 4a3c853689a..4ab0d9c0911 100644
--- a/arch/um/drivers/line.c
+++ b/arch/um/drivers/line.c
@@ -344,6 +344,7 @@ static irqreturn_t line_write_interrupt(int irq, void *data)
spin_lock(&line->lock);
err = flush_buffer(line);
if (err == 0) {
+ spin_unlock(&line->lock);
return IRQ_NONE;
} else if (err < 0) {
line->head = line->buffer;