diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-07-03 09:30:01 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-07-29 17:30:37 -0400 |
commit | 7f36d9deaafb246caadc3a94d785e9d856209e01 (patch) | |
tree | 5b0213738523c09688641583405b11bf7d9721e0 /drivers/serial/8250.c | |
parent | 295048108ae1c03ede2297c08133526c5a1b6b3b (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.c | 7 |
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); |