lkml.org 
[lkml]   [2012]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
Subject3.4.10 N_GSM tty_io WARNING and lockup
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


\
 
 \ /
  Last update: 2012-09-05 14:04    [W:0.120 / U:0.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site