Re: an Oops when opening ttyUSB in ftdi_sio driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/3/17 Johan Hovold <jhovold@xxxxxxxxx>:
> On Fri, Mar 16, 2012 at 05:45:14PM +0800, Ken Huang wrote:
>> 2012/3/15 Johan Hovold <jhovold@xxxxxxxxx>
>> >
>> > > > Please try the above with 3.2.11.
>> > > >
>> > > It can be reproduced with 3.2.11, but I just don't know how to capture the
>> > > crash message,
>> > > cause system has no response when the oops shows.
>> > > So how can I capture this oops message?
>> >
>> > Can you take a photo of the screen with the oops message and its
>> > backtrace? (Otherwise, just write down the backtrace by hand.)
>> >
>> > Other options could be to set up a serial or net console but you
>> > need another host for that.
>> >
>> > Did you say that the oops didn't occur until you unplug the device
>> > again?
>> >
>> > Thanks,
>> > Johan
>>
>>
>> >Did you say that the oops didn't occur until you unplug the device
>> >again?
>> No, I run my test program and plug modem, oops shows immediately.
>> And I can reproduce it every time with these two steps.
>>
>> Here is the oops info from dmesg:
>
> Thanks for your detailed description of the problem.
>
> I'm able to reproduce the bug here. Turns out there is a race in
> usb-serial core between open and probe.
>
> I'll respond to this mail with a patch that should fix it. Care to give
> it a try?
>
> Thanks,
> Johan

Nice work, it was fixed!

Thanks very much.

Would you please help me to figure out whether the following three
LKCD stack info are the same problem:
1.
LKCD:CPU2 die, Process tcpdump (pid: 24341, stackpage=d1c9a080)
CPU:    2
EIP:    0060:[<405829c5>] _spin_lock_irqsave+0x13/0x1a        Tainted:
G      D
EFLAGS: 00200097
eax: 4086f900   ebx: d1c0f000   ecx: 00200246   edx: 00000d0c
esi: 00000000   edi: 37ad8000   ebp: 4035c6db   esp: d15dbf28
ds: 007b   es: 007b   ss: 0068
Stack:
 40360a30 d1c0f000 d1c0f000 40360c58 00000000 00000000 00000000 00000002
 00000000 fffffffb 37ad8000 4035c750 0000007a 37ad8000 d1c26d40 40290c3b
 00000001 0000007a d1c26d40 37ad8000 4035c6db 40291077 d15dbf9c d1c26d40
 [<40360a30>] ? tty_ldisc_try+0x10/0x31
 [<40360c58>] ? tty_ldisc_ref_wait+0xc/0x83
 [<4035c750>] ? tty_write+0x75/0x1bc
 [<40290c3b>] ? rw_verify_area+0x83/0xa2
 [<4035c6db>] ? tty_write+0x0/0x1bc
 [<40291077>] ? vfs_write+0x7b/0xd3
 [<40291164>] ? sys_write+0x3c/0x60
 [<40202964>] ? sysenter_do_call+0x12/0x22
Code: 8a 10 eb f6 89 c8 c3 9c 5a fa f0 81 28 00 00 00 01 74 05 e8
2.
LKCD:CPU3 die, Process sshd (pid: 7420, stackpage=d153aa60)
CPU:    3
EIP:    0060:[<405828ef>] _spin_lock_irqsave+0xd/0x1a   Tainted: G      D
EFLAGS: 00000097
eax: 4086d900   ebx: d9da9000   ecx: 00000246   edx: 00002827
esi: 00000000   edi: d3078bc0   ebp: 00000007   esp: d2d45b48
ds: 007b   es: 007b   ss: 0068
Stack:
 40360a30 d9da9000 d9da9000 40360c58 00000286 d3078bc0 00000246 40236f80
 d2d45bf0 00000000 d3078bc0 4035b48e 00000000 406017e0 00000000 d3078bc0
 00000080 00000007 4029bfe1 00000000 d2d45f60 00c9f59a 00000000 00000000
 [<40360a30>] ? tty_ldisc_try+0x10/0x31
 [<40360c58>] ? tty_ldisc_ref_wait+0xc/0x83
 [<40236f80>] ? add_wait_queue+0x12/0x32
 [<4035b48e>] ? tty_poll+0x2e/0x62
 [<4029bfe1>] ? do_select+0x241/0x3f4
 [<4029c3e7>] ? __pollwait+0x0/0xa1
 [<4029c488>] ? pollwake+0x0/0x39
 [<4029c488>] ? pollwake+0x0/0x39
 [<4029c488>] ? pollwake+0x0/0x39
 [<4029c488>] ? pollwake+0x0/0x39
 [<4029c488>] ? pollwake+0x0/0x39
 [<40515500>] ? nf_iterate+0x30/0x61
 [<404feeab>] ? dev_hard_start_xmit+0x13a/0x19b
 [<404ff18a>] ? kernel_send_skb+0x1b4/0x1d0
 [<4052064d>] ? ip_finish_output2+0x150/0x186
 [<4051f02a>] ? dst_output+0x6/0x7
 [<4052114c>] ? ip_queue_xmit+0x275/0x2b7
 [<40532ecf>] ? tcp_v4_send_check+0x2b/0x7a
 [<4052ef44>] ? tcp_transmit_skb+0x56e/0x5a1
 [<4022eba1>] ? __mod_timer+0x9a/0xa3
 [<4053007b>] ? tcp_write_xmit+0x642/0x6fa
 [<404f9242>] ? __alloc_skb+0x51/0x107
 [<40530187>] ? __tcp_push_pending_frames+0x1e/0x50
 [<404f5665>] ? release_sock+0xd/0xa4
 [<40527f6c>] ? tcp_sendmsg+0x524/0x5a0
 [<40348663>] ? __copy_from_user_ll+0xe/0xca
 [<4029c2d4>] ? core_sys_select+0x140/0x1c4
 [<404f2eb9>] ? sock_aio_write+0x9d/0xaa
 [<40290a79>] ? do_sync_write+0xbf/0x100
 [<40236d6a>] ? autoremove_wake_function+0x0/0x2d
 [<4035f48c>] ? n_tty_read+0x0/0x53d
 [<4029c3c6>] ? sys_select+0x6e/0x8f
 [<4029117f>] ? sys_write+0x57/0x60
 [<40202964>] ? sysenter_do_call+0x12/0x22
Code: 38 f2 74 06 f3 90 8a 10 eb f6 89 c8 c3 9c 5a fa f0 81 28 00
3.
LKCD:CPU0 die, Process sshd (pid: 24119, stackpage=a382b650)
CPU:    0
EIP:    0060:[<405828f7>] _spin_lock_irqsave+0x15/0x1a	Tainted: G      D
EFLAGS: 00000097
eax: 4086d900   ebx: 00000000   ecx: 00000297   edx: 00005d5c
esi: a34bde40   edi: bad757e8   ebp: 5060cbc0   esp: a34bde20
ds: 007b   es: 007b   ss: 0068
Stack:
 40360b06 00000000 a34bde40 bad757e8 40360b72 bad75400 00000000 40360c30
 bb800e80 bad75800 bb0bbc00 00000000 4035ba32 bad75400 000003e8 00000000
 00000000 bad75400 bb0bbc00 4035ce1c 00000000 00000000 00000000 9cae02cc
 [<40360b06>] ? tty_ldisc_try_get+0x11/0x66
 [<40360b72>] ? tty_ldisc_get+0x17/0x39
 [<40360c30>] ? tty_ldisc_init+0x10/0x2c
 [<4035ba32>] ? initialize_tty_struct+0x35/0x1a0
 [<4035ce1c>] ? tty_init_dev+0x69/0x116
 [<403620c8>] ? ptmx_open+0x42/0xb9
 [<40293524>] ? chrdev_open+0x128/0x152
 [<402933fc>] ? chrdev_open+0x0/0x152
 [<4028f5dd>] ? __dentry_open+0x113/0x1e9
 [<40290413>] ? nameidata_to_filp+0x29/0x3c
 [<40299ac4>] ? do_filp_open+0x3ab/0x689
 [<402a05ff>] ? alloc_fd+0x5e/0xd0
 [<4028f3ea>] ? do_sys_open+0x44/0xb4
 [<4028f49e>] ? sys_open+0x1e/0x23
 [<40202964>] ? sysenter_do_call+0x12/0x22
Code: eb f6 89 c8 c3 9c 5a fa f0 81 28 00 00 00 01 74 05 e8 f7 fd

These three were reported under this circumstance:
Running my test program as background process  and leaving USB modem unplugged.
And then doing other jobs.

Notice that the issue processes are sshd and tcpdump, and it's
difficult to reproduce them.
I guess they are maybe the same bug with what i posted previously, but
i can't prove that.

they are tested in kernel 2.6.30 again, and doesn't happen again after
removing the usbserial and
ftdi_sio drivers from the kernel.

I'm sorry if I should not post it here.
Thanks again.

Regards,
Ken
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux