aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/8250.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-07-03 09:30:01 -0400
committerThomas Gleixner <tglx@linutronix.de>2009-07-29 17:30:37 -0400
commit7f36d9deaafb246caadc3a94d785e9d856209e01 (patch)
tree5b0213738523c09688641583405b11bf7d9721e0 /drivers/serial/8250.c
parent295048108ae1c03ede2297c08133526c5a1b6b3b (diff)
drivers/serial: call flush_to_ldisc when the irq is threaded
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/serial/8250.c')
-rw-r--r--drivers/serial/8250.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index a1f403ec9213..d4d69e155afe 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1595,7 +1595,12 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id)
1595 1595
1596 l = l->next; 1596 l = l->next;
1597 1597
1598 if (l == i->head && pass_counter++ > PASS_LIMIT) { 1598 /*
1599 * On preempt-rt we can be preempted and run in our
1600 * own thread.
1601 */
1602 if (!preempt_rt() && l == i->head &&
1603 pass_counter++ > PASS_LIMIT) {
1599 /* If we hit this, we're dead. */ 1604 /* If we hit this, we're dead. */
1600 printk(KERN_ERR "serial8250: too much work for " 1605 printk(KERN_ERR "serial8250: too much work for "
1601 "irq%d\n", irq); 1606 "irq%d\n", irq);