lkml.org 
[lkml]   [2006]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: pl2303 ttyUSB0: pl2303_open - failed submitting interrupt urb, error -28
    Mark Lord wrote:
    > Greg KH wrote:
    >> So we should have finally covered both of them now.
    >
    > Yes, agreed.
    >
    > So if modify pl2303_open() to have it simulate -ENOMEM from
    > usb_submit_urb(),
    > then this should not crash the entire USB subsystem. Right?
    >
    > Ditto if it happens due to low-memory, rather than me hacking the code
    > to test it?

    Mmmm.. looks like it's still buggy, but we manage to avoid the bug
    under *most* circumstances. Which is good!

    But the bug will still need to be fixed. A failure from usb_submit_urb()
    should not require a reboot to recover.
    Here's the results of a simulated -ENOMEM test:

    kernel BUG at kernel/workqueue.c:110!
    invalid opcode: 0000 [#1]
    PREEMPT
    Modules linked in: pl2303 mct_u232 usblp usbserial usbhid snd_pcm_oss uhci_hcd ehci_hcd vmnet vmmon nfsd exportfs lockd nfs_acl sunrpc speedstep_centrino cpufreq_conservative cpufreq_stats cpufreq_userspace cpufreq_powersave freq_table cpufreq_ondemand thermal fan battery ac processor container video button rfcomm l2cap bluetooth cfq_iosched deflate zlib_deflate twofish serpent aes blowfish des sha256 sha1 crypto_null af_key af_packet sbp2 pcmcia ipw2200 ieee80211 ieee80211_crypt snd_intel8x0 snd_ac97_codec snd_ac97_bus yenta_socket ohci1394 ieee1394 snd_mixer_oss mousedev rsrc_nonstatic pcmcia_core mmc_core b44 mii firmware_class snd_pcm snd_timer snd soundcore serio_raw pcspkr snd_page_alloc psmouse intel_agp agpgart usbcore sg sr_mod cdrom unix
    CPU: 0
    EIP: 0060:[queue_work+81/96] Tainted: P VLI
    EFLAGS: 00010286 (2.6.17-rc6-git2 #3)
    EIP is at queue_work+0x51/0x60
    eax: f317093c ebx: 00000000 ecx: b21b9f80 edx: f3170938
    esi: f4782640 edi: f4782640 ebp: f7333414 esp: f7cc3e4c
    ds: 007b es: 007b ss: 0068
    Process khubd (pid: 1737, threadinfo=f7cc2000 task=b21bb070)
    Stack: 00000000 f8a30d63 b01ca38f b02e136b f8884ad3 f7333400 f8c52080 f8c520a4
    f7333414 f88867f2 f733347c f7333414 b022240f f7333414 f7333414 f889bae0
    b02226a6 f7333414 b0221c87 f7333414 f7519c58 00000001 b0220e35 f7333400
    Call Trace:
    <f8a30d63> usb_serial_disconnect+0x53/0xd0 [usbserial] <b01ca38f> kref_put+0x2f/0x80
    <f8884ad3> usb_disable_interface+0x53/0x70 [usbcore] <f88867f2> usb_unbind_interface+0x32/0x70 [usbcore]
    <b022240f> __device_release_driver+0x5f/0xc0 <b02226a6> device_release_driver+0x16/0x30
    <b0221c87> bus_remove_device+0x77/0x90 <b0220e35> device_del+0x35/0x70
    <f8885733> usb_disable_device+0xb3/0x100 [usbcore] <f887f404> usb_disconnect+0x94/0x100 [usbcore]
    <f887f3f2> usb_disconnect+0x82/0x100 [usbcore] <f887f3f2> usb_disconnect+0x82/0x100 [usbcore]
    <f8881c1e> hub_thread+0x3be/0xc75 [usbcore] <b012efc0> autoremove_wake_function+0x0/0x50
    <b02b6d9f> preempt_schedule+0x4f/0x70 <b012eed6> kthread+0xd6/0xe0
    <f8881860> hub_thread+0x0/0xc75 [usbcore] <b012ee00> kthread+0x0/0xe0
    <b0101005> kernel_thread_helper+0x5/0x10
    Code: a8 08 75 1c 89 d8 5b c3 89 f6 8d 42 04 3b 42 04 75 19 8b 01 bb 01 00 00 00 e8 dc fa ff ff eb d3 e8 85 ae 18 00 89 d8 5b 89 f6 c3 <0f> 0b 6e 00 d1 de 2c b0 eb dd 90 8d 74 26 00 89 c2 a1 d4 d1 38
    EIP: [queue_work+81/96] queue_work+0x51/0x60 SS:ESP 0068:f7cc3e4c
    <6>note: khubd[1737] exited with preempt_count 1
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-06-13 01:23    [W:4.191 / U:0.776 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site