* 3.4.10 N_GSM tty_io WARNING and lockup
@ 2012-09-05 10:56 Krzysztof Hałasa
2012-09-06 13:01 ` Alan Cox
0 siblings, 1 reply; 6+ messages in thread
From: Krzysztof Hałasa @ 2012-09-05 10:56 UTC (permalink / raw)
To: linux-kernel
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 3.4.10 N_GSM tty_io WARNING and lockup
2012-09-05 10:56 3.4.10 N_GSM tty_io WARNING and lockup Krzysztof Hałasa
@ 2012-09-06 13:01 ` Alan Cox
2012-09-07 11:07 ` Krzysztof Hałasa
0 siblings, 1 reply; 6+ messages in thread
From: Alan Cox @ 2012-09-06 13:01 UTC (permalink / raw)
To: Krzysztof Hałasa; +Cc: linux-kernel
On Wed, 05 Sep 2012 12:56:03 +0200
khalasa@piap.pl (Krzysztof Hałasa) wrote:
> 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);
Baffled at this point. If you set some other ldisc instead (eg PPP) can
you reproduce it the same way ?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 3.4.10 N_GSM tty_io WARNING and lockup
2012-09-06 13:01 ` Alan Cox
@ 2012-09-07 11:07 ` Krzysztof Hałasa
2012-09-07 12:59 ` Krzysztof Halasa
0 siblings, 1 reply; 6+ messages in thread
From: Krzysztof Hałasa @ 2012-09-07 11:07 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-kernel
Alan Cox <alan@lxorguk.ukuu.org.uk> writes:
>> 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);
>
> Baffled at this point. If you set some other ldisc instead (eg PPP) can
> you reproduce it the same way ?
In the meantime I've rebased to v3.5.3 and it started to work. Do you
think it is worth it investigating v3.4.10 at this point?
This is Atheros AR71xx based RouterStation Pro board (MIPS). I'm using
several patches supporting this board, though I can't see anything
relevant to serial/tty, except maybe the following (which is IMHO not
the problem source either):
@@ -1941,17 +1941,20 @@ static int serial8250_startup(struct uart_port *port)
if (port->type == PORT_16C950) {
/* Wake up and initialize UART */
- up->acr = 0;
+ up->acr = UART_ACR_RTS_485;
+ serial_icr_write(up, UART_ACR, up->acr);
serial_port_out(port, UART_LCR, UART_LCR_CONF_MODE_B);
serial_port_out(port, UART_EFR, UART_EFR_ECB);
serial_port_out(port, UART_IER, 0);
serial_port_out(port, UART_LCR, 0);
+#if 0
serial_icr_write(up, UART_CSR, 0); /* Reset the UART */
serial_port_out(port, UART_LCR, UART_LCR_CONF_MODE_B);
serial_port_out(port, UART_EFR, UART_EFR_ECB);
serial_port_out(port, UART_LCR, 0);
+#endif
Anyway the patchsets are almost identical with both kernel versions.
--
Krzysztof Halasa
Research Institute for Automation and Measurements PIAP
Al. Jerozolimskie 202, 02-486 Warsaw, Poland
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 3.4.10 N_GSM tty_io WARNING and lockup
2012-09-07 11:07 ` Krzysztof Hałasa
@ 2012-09-07 12:59 ` Krzysztof Halasa
2012-09-07 13:29 ` Alan Cox
0 siblings, 1 reply; 6+ messages in thread
From: Krzysztof Halasa @ 2012-09-07 12:59 UTC (permalink / raw)
To: Krzysztof Hałasa; +Cc: Alan Cox, linux-kernel
> In the meantime I've rebased to v3.5.3 and it started to work. Do you
> think it is worth it investigating v3.4.10 at this point?
BTW I'm not sure if it's a known bug: I closed the /dev/ttyS0 with
/dev/gsmmuxX still open, and then tried to set N_TTY ldisc on the
master device. It didn't work so well :-(
# killall -9 microcom # they use /dev/gsmmux[0-3]
# killall -9 iru # the program messing with ldiscs
# ps axf
344 ? Ss 0:00 \_ sshd: root@pts/1
346 pts/1 Ss 0:00 | \_ -sh
405 pts/1 D+ 0:00 | \_ [microcom]
347 ? Ss 0:00 \_ sshd: root@pts/2
349 pts/2 Ss 0:00 | \_ -sh
403 pts/2 D+ 0:00 | \_ [microcom]
406 ? Ss 0:00 \_ sshd: root@pts/3
408 pts/3 Ss 0:00 | \_ -sh
412 pts/3 D+ 0:00 | \_ [microcom]
409 ? Ss 0:00 \_ sshd: root@pts/4
411 pts/4 Ss 0:00 \_ -sh
413 pts/4 D+ 0:00 \_ [microcom]
415 pts/0 D 0:00 iru
--
Krzysztof Halasa
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 3.4.10 N_GSM tty_io WARNING and lockup
2012-09-07 12:59 ` Krzysztof Halasa
@ 2012-09-07 13:29 ` Alan Cox
2012-09-07 16:14 ` Krzysztof Halasa
0 siblings, 1 reply; 6+ messages in thread
From: Alan Cox @ 2012-09-07 13:29 UTC (permalink / raw)
To: Krzysztof Halasa; +Cc: Krzysztof Hałasa, linux-kernel
On Fri, 07 Sep 2012 14:59:26 +0200
Krzysztof Halasa <khc@pm.waw.pl> wrote:
> > In the meantime I've rebased to v3.5.3 and it started to work. Do you
> > think it is worth it investigating v3.4.10 at this point?
>
> BTW I'm not sure if it's a known bug: I closed the /dev/ttyS0 with
> /dev/gsmmuxX still open, and then tried to set N_TTY ldisc on the
> master device. It didn't work so well :-(
That should be fixed in 3.7. It's unfixable until the lock splitting work
is merged.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 3.4.10 N_GSM tty_io WARNING and lockup
2012-09-07 13:29 ` Alan Cox
@ 2012-09-07 16:14 ` Krzysztof Halasa
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Halasa @ 2012-09-07 16:14 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-kernel
Alan Cox <alan@lxorguk.ukuu.org.uk> writes:
>> BTW I'm not sure if it's a known bug: I closed the /dev/ttyS0 with
>> /dev/gsmmuxX still open, and then tried to set N_TTY ldisc on the
>> master device. It didn't work so well :-(
>
> That should be fixed in 3.7. It's unfixable until the lock splitting work
> is merged.
I see. Thanks.
--
Krzysztof Halasa
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-09-07 16:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-05 10:56 3.4.10 N_GSM tty_io WARNING and lockup Krzysztof Hałasa
2012-09-06 13:01 ` Alan Cox
2012-09-07 11:07 ` Krzysztof Hałasa
2012-09-07 12:59 ` Krzysztof Halasa
2012-09-07 13:29 ` Alan Cox
2012-09-07 16:14 ` Krzysztof Halasa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).