diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-07-03 08:30:01 -0500 |
---|---|---|
committer | Clark Williams <williams@redhat.com> | 2012-04-13 11:01:43 -0500 |
commit | cf771af44e6bb2d48572d813473654c6e86bd8b0 (patch) | |
tree | 4a8cfd0e0c368db1753df0ff108e02938340958f /drivers | |
parent | b6179d412d8ab828ca6b9d5769cb0f2aba771230 (diff) |
serial: 8250: Call flush_to_ldisc when the irq is threaded
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/tty/serial/8250/8250.c | 2 | ||||
-rw-r--r-- | drivers/tty/tty_buffer.c | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c index c93991503e2a..66869522d7e3 100644 --- a/drivers/tty/serial/8250/8250.c +++ b/drivers/tty/serial/8250/8250.c @@ -1586,12 +1586,14 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id) l = l->next; +#ifndef CONFIG_PREEMPT_RT_FULL if (l == i->head && pass_counter++ > PASS_LIMIT) { /* If we hit this, we're dead. */ printk_ratelimited(KERN_ERR "serial8250: too much work for irq%d\n", irq); break; } +#endif } while (l != end); spin_unlock(&i->lock); diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c index 6c9b7cd6778a..a56c2231fed3 100644 --- a/drivers/tty/tty_buffer.c +++ b/drivers/tty/tty_buffer.c @@ -493,10 +493,14 @@ void tty_flip_buffer_push(struct tty_struct *tty) tty->buf.tail->commit = tty->buf.tail->used; spin_unlock_irqrestore(&tty->buf.lock, flags); +#ifndef CONFIG_PREEMPT_RT_FULL if (tty->low_latency) flush_to_ldisc(&tty->buf.work); else schedule_work(&tty->buf.work); +#else + flush_to_ldisc(&tty->buf.work); +#endif } EXPORT_SYMBOL(tty_flip_buffer_push); |