um: deadlock in line_write_interrupt()
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 11 Feb 2012 08:05:32 +0000 (03:05 -0500)
committerRichard Weinberger <richard@nod.at>
Sat, 24 Mar 2012 23:29:56 +0000 (00:29 +0100)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/drivers/line.c

index 4a3c853689a3e3867d3a611b5b5e439017ca23f0..4ab0d9c0911c7bd6fe42ac7369211ef1f4914d07 100644 (file)
@@ -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;