mirror of https://gitee.com/openkylin/linux.git
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
commit
28e1445c65
|
@ -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)
|
||||||
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)
|
||||||
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) {
|
||||||
|
|
Loading…
Reference in New Issue