Loading drivers/tty/tty_ldisc.c +23 −23 Original line number Diff line number Diff line Loading @@ -498,29 +498,6 @@ static void tty_ldisc_restore(struct tty_struct *tty, struct tty_ldisc *old) } } /** * tty_ldisc_halt - shut down the line discipline * @tty: tty device * * Shut down the line discipline and work queue for this tty device. * The TTY_LDISC flag being cleared ensures no further references can * be obtained while the delayed work queue halt ensures that no more * data is fed to the ldisc. * * You need to do a 'flush_scheduled_work()' (outside the ldisc_mutex) * in order to make sure any currently executing ldisc work is also * flushed. */ static int tty_ldisc_halt(struct tty_struct *tty) { int scheduled; clear_bit(TTY_LDISC, &tty->flags); scheduled = cancel_work_sync(&tty->port->buf.work); set_bit(TTY_LDISC_HALTED, &tty->flags); return scheduled; } /** * tty_ldisc_flush_works - flush all works of a tty * @tty: tty device to flush works for Loading Loading @@ -550,6 +527,29 @@ static int tty_ldisc_wait_idle(struct tty_struct *tty, long timeout) return ret > 0 ? 0 : -EBUSY; } /** * tty_ldisc_halt - shut down the line discipline * @tty: tty device * * Shut down the line discipline and work queue for this tty device. * The TTY_LDISC flag being cleared ensures no further references can * be obtained while the delayed work queue halt ensures that no more * data is fed to the ldisc. * * You need to do a 'flush_scheduled_work()' (outside the ldisc_mutex) * in order to make sure any currently executing ldisc work is also * flushed. */ static int tty_ldisc_halt(struct tty_struct *tty) { int scheduled; clear_bit(TTY_LDISC, &tty->flags); scheduled = cancel_work_sync(&tty->port->buf.work); set_bit(TTY_LDISC_HALTED, &tty->flags); return scheduled; } /** * tty_ldisc_hangup_halt - halt the line discipline for hangup * @tty: tty being hung up Loading Loading
drivers/tty/tty_ldisc.c +23 −23 Original line number Diff line number Diff line Loading @@ -498,29 +498,6 @@ static void tty_ldisc_restore(struct tty_struct *tty, struct tty_ldisc *old) } } /** * tty_ldisc_halt - shut down the line discipline * @tty: tty device * * Shut down the line discipline and work queue for this tty device. * The TTY_LDISC flag being cleared ensures no further references can * be obtained while the delayed work queue halt ensures that no more * data is fed to the ldisc. * * You need to do a 'flush_scheduled_work()' (outside the ldisc_mutex) * in order to make sure any currently executing ldisc work is also * flushed. */ static int tty_ldisc_halt(struct tty_struct *tty) { int scheduled; clear_bit(TTY_LDISC, &tty->flags); scheduled = cancel_work_sync(&tty->port->buf.work); set_bit(TTY_LDISC_HALTED, &tty->flags); return scheduled; } /** * tty_ldisc_flush_works - flush all works of a tty * @tty: tty device to flush works for Loading Loading @@ -550,6 +527,29 @@ static int tty_ldisc_wait_idle(struct tty_struct *tty, long timeout) return ret > 0 ? 0 : -EBUSY; } /** * tty_ldisc_halt - shut down the line discipline * @tty: tty device * * Shut down the line discipline and work queue for this tty device. * The TTY_LDISC flag being cleared ensures no further references can * be obtained while the delayed work queue halt ensures that no more * data is fed to the ldisc. * * You need to do a 'flush_scheduled_work()' (outside the ldisc_mutex) * in order to make sure any currently executing ldisc work is also * flushed. */ static int tty_ldisc_halt(struct tty_struct *tty) { int scheduled; clear_bit(TTY_LDISC, &tty->flags); scheduled = cancel_work_sync(&tty->port->buf.work); set_bit(TTY_LDISC_HALTED, &tty->flags); return scheduled; } /** * tty_ldisc_hangup_halt - halt the line discipline for hangup * @tty: tty being hung up Loading