|
@@ -219,8 +219,11 @@ int tty_port_block_til_ready(struct tty_port *port,
|
|
|
|
|
|
/* if non-blocking mode is set we can pass directly to open unless
|
|
|
the port has just hung up or is in another error state */
|
|
|
- if ((filp->f_flags & O_NONBLOCK) ||
|
|
|
- (tty->flags & (1 << TTY_IO_ERROR))) {
|
|
|
+ if (tty->flags & (1 << TTY_IO_ERROR)) {
|
|
|
+ port->flags |= ASYNC_NORMAL_ACTIVE;
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ if (filp->f_flags & O_NONBLOCK) {
|
|
|
/* Indicate we are open */
|
|
|
if (tty->termios->c_cflag & CBAUD)
|
|
|
tty_port_raise_dtr_rts(port);
|