Commit eff783a1 authored by Russell King's avatar Russell King

[SERIAL] 8250: Return interrupt handler status.

Thomas Koeller points out that we're always returning IRQ_HANDLED
from our interrupt handler, even if we find no interrupt work to
be done.
parent 9f9ed67c
...@@ -1153,7 +1153,7 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *r ...@@ -1153,7 +1153,7 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *r
{ {
struct irq_info *i = dev_id; struct irq_info *i = dev_id;
struct list_head *l, *end = NULL; struct list_head *l, *end = NULL;
int pass_counter = 0; int pass_counter = 0, handled = 0;
DEBUG_INTR("serial8250_interrupt(%d)...", irq); DEBUG_INTR("serial8250_interrupt(%d)...", irq);
...@@ -1172,6 +1172,8 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *r ...@@ -1172,6 +1172,8 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *r
serial8250_handle_port(up, regs); serial8250_handle_port(up, regs);
spin_unlock(&up->port.lock); spin_unlock(&up->port.lock);
handled = 1;
end = NULL; end = NULL;
} else if (end == NULL) } else if (end == NULL)
end = l; end = l;
...@@ -1189,8 +1191,8 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *r ...@@ -1189,8 +1191,8 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *r
spin_unlock(&i->lock); spin_unlock(&i->lock);
DEBUG_INTR("end.\n"); DEBUG_INTR("end.\n");
/* FIXME! Was it really ours? */
return IRQ_HANDLED; return IRQ_RETVAL(handled);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment