Hi Greg, Today's linux-next merge of the tty tree got a conflict in drivers/tty/tty_ldisc.c between commits df92d0561de3 ("TTY: ldisc, allow waiting for ldisc arbitrarily long") and 0c73c08ec73d ("TTY: ldisc, wait for ldisc infinitely in hangup") from the tty.current tree and commits 66ef27c3fd0e ("tty_ldisc: remove unnecessary negative return check for wait_event_timeout") and 8b3ffa173ffa ("TTY: ldisc, remove some unneeded includes") from the tty tree. I fixed it up (see below) and can carry the fix as necessary. -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc drivers/tty/tty_ldisc.c index 8e0924f,174db3b..0000000 --- a/drivers/tty/tty_ldisc.c +++ b/drivers/tty/tty_ldisc.c @@@ -24,19 -16,8 +16,9 @@@ #include <linux/device.h> #include <linux/wait.h> #include <linux/bitops.h> - #include <linux/delay.h> #include <linux/seq_file.h> - #include <linux/uaccess.h> - #include <asm/system.h> - - #include <linux/kbd_kern.h> - #include <linux/vt_kern.h> - #include <linux/selection.h> - - #include <linux/kmod.h> - #include <linux/nsproxy.h> +#include <linux/ratelimit.h> /* * This guards the refcounted line discipline lists. The lock @@@ -553,13 -533,11 +535,11 @@@ static void tty_ldisc_flush_works(struc * Wait for the line discipline to become idle. The discipline must * have been halted for this to guarantee it remains idle. */ -static int tty_ldisc_wait_idle(struct tty_struct *tty) +static int tty_ldisc_wait_idle(struct tty_struct *tty, long timeout) { - int ret; + long ret; ret = wait_event_timeout(tty_ldisc_idle, - atomic_read(&tty->ldisc->users) == 1, 5 * HZ); + atomic_read(&tty->ldisc->users) == 1, timeout); - if (ret < 0) - return ret; return ret > 0 ? 0 : -EBUSY; }
Attachment:
pgpVeUzcb17wL.pgp
Description: PGP signature