提交 28e1445c 编写于 作者: G Greg Kroah-Hartman

Merge branch 'tty-linus' into 'tty-testing'

We need the fixes in drivers/tty/tty_io.c that were done in there for
future patches in this branch.
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
...@@ -363,7 +363,7 @@ uart_get_baud_rate(struct uart_port *port, struct ktermios *termios, ...@@ -363,7 +363,7 @@ uart_get_baud_rate(struct uart_port *port, struct ktermios *termios,
* The spd_hi, spd_vhi, spd_shi, spd_warp kludge... * The spd_hi, spd_vhi, spd_shi, spd_warp kludge...
* Die! Die! Die! * Die! Die! Die!
*/ */
if (baud == 38400) if (try == 0 && baud == 38400)
baud = altbaud; baud = altbaud;
/* /*
......
...@@ -1763,6 +1763,8 @@ int tty_release(struct inode *inode, struct file *filp) ...@@ -1763,6 +1763,8 @@ int tty_release(struct inode *inode, struct file *filp)
int do_sleep, final; int do_sleep, final;
int idx; int idx;
char buf[64]; char buf[64];
long timeout = 0;
int once = 1;
if (tty_paranoia_check(tty, inode, __func__)) if (tty_paranoia_check(tty, inode, __func__))
return 0; return 0;
...@@ -1832,9 +1834,16 @@ int tty_release(struct inode *inode, struct file *filp) ...@@ -1832,9 +1834,16 @@ int tty_release(struct inode *inode, struct file *filp)
if (!do_sleep) if (!do_sleep)
break; break;
if (once) {
once = 0;
printk(KERN_WARNING "%s: %s: read/write wait queue active!\n", printk(KERN_WARNING "%s: %s: read/write wait queue active!\n",
__func__, tty_name(tty, buf)); __func__, tty_name(tty, buf));
schedule(); }
schedule_timeout_killable(timeout);
if (timeout < 120 * HZ)
timeout = 2 * timeout + 1;
else
timeout = MAX_SCHEDULE_TIMEOUT;
} }
if (o_tty) { if (o_tty) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册