|
@@ -261,7 +261,7 @@ static irqreturn_t line_write_interrupt(int irq, void *data)
|
|
|
if (err == 0) {
|
|
|
spin_unlock(&line->lock);
|
|
|
return IRQ_NONE;
|
|
|
- } else if (err < 0) {
|
|
|
+ } else if ((err < 0) && (err != -EAGAIN)) {
|
|
|
line->head = line->buffer;
|
|
|
line->tail = line->buffer;
|
|
|
}
|
|
@@ -284,7 +284,7 @@ int line_setup_irq(int fd, int input, int output, struct line *line, void *data)
|
|
|
if (err)
|
|
|
return err;
|
|
|
if (output)
|
|
|
- err = um_request_irq(driver->write_irq, fd, IRQ_NONE,
|
|
|
+ err = um_request_irq(driver->write_irq, fd, IRQ_WRITE,
|
|
|
line_write_interrupt, IRQF_SHARED,
|
|
|
driver->write_irq_name, data);
|
|
|
return err;
|