diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c index a62798fcc014f743df4b05065b4514cc54ed2830..59bfaecc4e1438ecc771573c44c161b26fc3548d 100644 --- a/drivers/tty/pty.c +++ b/drivers/tty/pty.c @@ -681,6 +681,9 @@ static int ptmx_open(struct inode *inode, struct file *filp) nonseekable_open(inode, filp); + /* We refuse fsnotify events on ptmx, since it's a shared resource */ + filp->f_mode |= FMODE_NONOTIFY; + retval = tty_alloc_file(filp); if (retval) return retval; diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index 97ebc8c5864e7f092e443810a53d5e42b4238501..6464029e4860968945840c252ad632b556f9f947 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -988,10 +988,10 @@ void start_tty(struct tty_struct *tty) EXPORT_SYMBOL(start_tty); +/* We limit tty time update visibility to every 8 seconds or so. */ static void tty_update_time(struct timespec *time) { - unsigned long sec = get_seconds(); - sec -= sec % 60; + unsigned long sec = get_seconds() & ~7; if ((long)(sec - time->tv_sec) > 0) time->tv_sec = sec; }