Hi, I'm trying to use GSM tty line discipline. Basically
echo AT+CMUX=0 > /dev/ttyS0 set termios (speed etc.) int ldisc = N_GSM0710; ioctl(fd, TIOCSETD, &ldisc); ... The ioctl first fails with EIO (probably due to inactive DCD line) in tty_set_ldisc(): if (test_bit(TTY_HUPPED, &tty->flags)) { /* We were raced by the hangup method. It will have stomped the ldisc data and closed the ldisc down */ clear_bit(TTY_LDISC_CHANGING, &tty->flags); mutex_unlock(&tty->ldisc_mutex); tty_ldisc_put(new_ldisc); tty_unlock(); return -EIO; <<<<<< HERE } Now trying to run the program again: ------------[ cut here ]------------ WARNING: at /home/khalasa/src/linux-3.4/drivers/tty/tty_io.c:1368 tty_open+0x2e8/0x55c() Modules linked in: m25p80 ag71xx Call Trace: [<8030a02c>] dump_stack+0x8/0x34 [<8007a35c>] warn_slowpath_common+0x78/0xa4 [<8007a3a0>] warn_slowpath_null+0x18/0x24 [<80193cac>] tty_open+0x2e8/0x55c [<800f1500>] chrdev_open+0x120/0x164 [<800eb320>] __dentry_open.isra.12+0x1bc/0x318 [<800fae54>] do_last.isra.32+0x774/0x78c [<800fb094>] path_openat+0xcc/0x3b4 [<800fb498>] do_filp_open+0x3c/0xa4 [<800ec3dc>] do_sys_open+0x13c/0x1ec [<80068dc4>] stack_done+0x20/0x40 ---[ end trace 5958cc366bfb54c4 ]--- then it locks up (task "D" state, though interruptible). A known problem probably? Any ideas? (I know about CLOCAL). -- Krzysztof Halasa Research Institute for Automation and Measurements PIAP Al. Jerozolimskie 202, 02-486 Warsaw, Poland -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/