Hello, I have the following setup: - arm/imx6 based machine - null-modem cable between two uart ports (driver: imx.c) - tested with 4.9 and 4.16 To test handshaking signals port A's DTR signal is toggled using TIOCMSET and then port B's DCD and DSR is read to check if the new level is readable there. The problem I'm faced now is that this fails sometimes[1] because when A's DTR is set inactive the level on B's DCD changes (as expected) and the driver calls uart_handle_dcd_change(0) which results in tty_hangup(tty) for B. Then when calling ioctl(fd_B, TIOCMGET, ..) the command is handled in hung_up_tty_ioctl() which returns -EIO. This makes it impossible to reliably get the handshaking state of B and I wonder if that is intended. I would have expected that TIOCMGET worked independent of the port being hung up or not. Best regards Uwe [1] This happens only sometimes because tty_hangup() only triggers a workqueue that later really hangs up. -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html