patch-2.4.18 linux/drivers/char/sx.c
Next file: linux/drivers/char/synclink.c
Previous file: linux/drivers/char/sonypi.h
Back to the patch index
Back to the overall index
- Lines: 29
- Date:
Mon Feb 4 17:22:38 2002
- Orig file:
linux.orig/drivers/char/sx.c
- Orig date:
Mon Feb 18 20:18:39 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/drivers/char/sx.c linux/drivers/char/sx.c
@@ -1160,7 +1160,8 @@
/* DCD went UP */
if( (~(port->gs.flags & ASYNC_NORMAL_ACTIVE) ||
~(port->gs.flags & ASYNC_CALLOUT_ACTIVE)) &&
- (sx_read_channel_byte(port, hi_hstat) != HS_IDLE_CLOSED)) {
+ (sx_read_channel_byte(port, hi_hstat) != HS_IDLE_CLOSED) &&
+ !(port->gs.tty->termios->c_cflag & CLOCAL) ) {
/* Are we blocking in open?*/
sx_dprintk (SX_DEBUG_MODEMSIGNALS, "DCD active, unblocking open\n");
wake_up_interruptible(&port->gs.open_wait);
@@ -1170,7 +1171,8 @@
} else {
/* DCD went down! */
if (!((port->gs.flags & ASYNC_CALLOUT_ACTIVE) &&
- (port->gs.flags & ASYNC_CALLOUT_NOHUP))) {
+ (port->gs.flags & ASYNC_CALLOUT_NOHUP)) &&
+ !(port->gs.tty->termios->c_cflag & CLOCAL) ) {
sx_dprintk (SX_DEBUG_MODEMSIGNALS, "DCD dropped. hanging up....\n");
tty_hangup (port->gs.tty);
} else {
@@ -1815,7 +1817,7 @@
case TIOCGSERIAL:
if ((rc = verify_area(VERIFY_WRITE, (void *) arg,
sizeof(struct serial_struct))) == 0)
- gs_getserial(&port->gs, (struct serial_struct *) arg);
+ rc = gs_getserial(&port->gs, (struct serial_struct *) arg);
break;
case TIOCSSERIAL:
if ((rc = verify_area(VERIFY_READ, (void *) arg,
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)