/** * tty_flush_to_ldisc * @tty: tty to push * * Push the terminal flip buffers to the line discipline. * * Must not be called from IRQ context. */ void tty_flush_to_ldisc(struct tty_struct *tty) { if (!tty->port->low_latency) { if (likely(ldisc_flush_wq)) flush_work(&tty->port->buf.work); else flush_to_ldisc(&tty->port->buf.work); } }
void tty_flip_buffer_push(struct tty_port *port) { struct tty_bufhead *buf = &port->buf; unsigned long flags; spin_lock_irqsave(&buf->lock, flags); if (buf->tail != NULL) buf->tail->commit = buf->tail->used; spin_unlock_irqrestore(&buf->lock, flags); #ifndef CONFIG_PREEMPT_RT_FULL if (port->low_latency) flush_to_ldisc(&buf->work); else schedule_work(&buf->work); #else flush_to_ldisc(&buf->work); #endif }
void tty_flip_buffer_push(struct tty_struct *tty) { unsigned long flags; spin_lock_irqsave(&tty->buf.lock, flags); if (tty->buf.tail != NULL) tty->buf.tail->commit = tty->buf.tail->used; spin_unlock_irqrestore(&tty->buf.lock, flags); if (tty->low_latency) flush_to_ldisc(&tty->buf.work); else schedule_work(&tty->buf.work); }
/** * tty_flush_to_ldisc * @tty: tty to push * * Push the terminal flip buffers to the line discipline. * * Must not be called from IRQ context. */ void tty_flush_to_ldisc(struct tty_struct *tty) { flush_to_ldisc(&tty->buf.work.work); }