mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 20:23:57 +08:00
tty: Relocate tty_ldisc_halt() to avoid forward declaration
tty_ldisc_halt() will use the file-scoped function, tty_ldisc_wait_idle(), in the following patch. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
76bc35e78f
commit
11cf48eab2
@ -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
|
||||
@ -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…
Reference in New Issue
Block a user